TotalVarsling Skrevet 9. februar 2010 Del Skrevet 9. februar 2010 hei XPathNavigator docNav = doc.CreateNavigator(); MessageBox.Show("Test 2..."); XPathNavigator node = docNav.SelectSingleNode("/root/initinfo/Type"); MessageBox.Show("Test 3..."); value = node != null ? node.InnerXml.Trim(): null; ovanstående fungerar i windows 7, windows xp, men ikke i vista 64x. jag får upp test 2 men ikke test 3, någon ide om varför detta vägrar fungera i win vista 64x Lenke til kommentar
GeirGrusom Skrevet 9. februar 2010 Del Skrevet 9. februar 2010 Det var en rar conditional setning du hadde der... men det er ikke så viktig. Får du kanskje en exception? Hva står det i den? Lenke til kommentar
TotalVarsling Skrevet 9. februar 2010 Forfatter Del Skrevet 9. februar 2010 (endret) Det var en rar conditional setning du hadde der... men det er ikke så viktig.Får du kanskje en exception? Hva står det i den? får ingen ting, progrqammet bara hänger, får ingen feilmelling eller dylikt note: detta fungerade inte i windows xp med msxml 6 parser men när jag även installerade msxml 4 parser i xp så fungerade det där, dock så skall juh den delen ligga i vista Endret 9. februar 2010 av Nyhetsfoto Lenke til kommentar
GeirGrusom Skrevet 9. februar 2010 Del Skrevet 9. februar 2010 Jeg vet ærlig talt ikke... men jeg ser at det har vært noen hotfixes for lignende problemer på Vista... er systemet helt oppdatert? Lenke til kommentar
TotalVarsling Skrevet 9. februar 2010 Forfatter Del Skrevet 9. februar 2010 (endret) Jeg vet ærlig talt ikke... men jeg ser at det har vært noen hotfixes for lignende problemer på Vista... er systemet helt oppdatert? det jag sett av hotfixes gäller SP 1 men här är det SP 2 har även testat lägga in msxml 4 manuellt utan att lyckas, så vi står rätt o slätt still verkar juh även som att msxml 6 ikke är helt bakåtkompatibel som man skulle tro Endret 9. februar 2010 av Nyhetsfoto Lenke til kommentar
GeirGrusom Skrevet 9. februar 2010 Del Skrevet 9. februar 2010 Funker det med alternative løsninger da? Dersom det er noe rart med XPath uttrykket ditt (dog det ser helt gyldig ut) kan du prøve LINQ istedet. Lenke til kommentar
TotalVarsling Skrevet 9. februar 2010 Forfatter Del Skrevet 9. februar 2010 Funker det med alternative løsninger da?Dersom det er noe rart med XPath uttrykket ditt (dog det ser helt gyldig ut) kan du prøve LINQ istedet. vi bruker .NET 2.0 så tror ikke det stöttar LINQ viss man ikke gör ett "hack" på det men då blir det kanske problem vid distrubition Lenke til kommentar
muggsopp Skrevet 9. februar 2010 Del Skrevet 9. februar 2010 Funker det med alternative løsninger da?Dersom det er noe rart med XPath uttrykket ditt (dog det ser helt gyldig ut) kan du prøve LINQ istedet. vi bruker .NET 2.0 så tror ikke det stöttar LINQ viss man ikke gör ett "hack" på det men då blir det kanske problem vid distrubition .NET 3 har vært ute i snart 4 år nå, og folk driver fremdeles og knoter med .NET 2.0 Jeg gir opp... Lenke til kommentar
GeirGrusom Skrevet 9. februar 2010 Del Skrevet 9. februar 2010 Det er ikke min jobb å velge utviklingsverktøy dere bruker, men jeg tør si at du kan spare endel på å flytte til 3.5. Lambdauttrykk og LINQ = <3 Men det er off-topic. Utover det, tror jeg at jeg bare ville funnet på en annen løsning (du må ikke bruke XPath f.eks. selv om det er latterlig mye enklere) Lenke til kommentar
muggsopp Skrevet 9. februar 2010 Del Skrevet 9. februar 2010 Det er ikke min jobb å velge utviklingsverktøy dere bruker, men jeg tør si at du kan spare endel på å flytte til 3.5.Lambdauttrykk og LINQ = <3 Men det er off-topic. Utover det, tror jeg at jeg bare ville funnet på en annen løsning (du må ikke bruke XPath f.eks. selv om det er latterlig mye enklere) Støtter dette! Dessuten, i XPath-uttrykket ditt bør du være klar over hva du faktisk selecter, og ikke minst om det returnerer null, eller kaster exceptions. En exception er nok. Lenke til kommentar
HDSoftware Skrevet 9. februar 2010 Del Skrevet 9. februar 2010 Vel, mange IT avdelinger har som policy "Virker det, la det være". Ikke alle vil ha oppdateringer hele tiden. Husk at det finnes store ASP leverandører der ute som fortsatt kjører på win2000 og Win2003 servere. Selv har vi valgt å gå for .NET3.5 i våre distribusjoner nå, men det betyr at mange av våre kunder ikke kan oppgradere, nettop fordi deres ASP leverandør fortsatt kjører Windows 2000 server og der er ikke .NET3 en gang mulig å installere. Så at du "gir opp" på grunn av at folk fortsatt "knoter" med .NET2 forteller meg bare at du ikke har dette som businness Lenke til kommentar
GeirGrusom Skrevet 9. februar 2010 Del Skrevet 9. februar 2010 Én ting som kan være verdt å notere seg, er at C# 3.0 fungerer i .NET 2.0, men LINQ og andre biblioteker er da ikke tilgjengelig. Altså en kan bruke closures og lambdauttrykk (og yndlingen min: var) i .NET 2.0 med Visual Studio 2008 fordi det ikke er noen endringer i CLR 3.0 og 3.5. (bare i C# compileren) Lenke til kommentar
TotalVarsling Skrevet 9. februar 2010 Forfatter Del Skrevet 9. februar 2010 (endret) detta är ett 10 år gammalt program som skall få en liten uppdatering. så att byta ut till .NET 3 är ikke aktuellt =) vi kör VS 2008 c# .NET 2.0 DLL kallas opp från en C++ app og vi har prövd med XmlDocument og Xpath henger på denna koden TEST 1: ASCIIEncoding encoding = new ASCIIEncoding(); Stream stream = new MemoryStream(encoding.GetBytes(xml)); XPathDocument doc = new XPathDocument(stream); XPathNavigator docNav = doc.CreateNavigator(); MessageBox.Show("Test 2..."); XPathNavigator node = docNav.SelectSingleNode("/root/initinfo/Type"); MessageBox.Show("Test 3..."); value = node != null ? node.InnerXml.Trim(): null; TEST 2: XmlDocument inputXML = new XmlDocument(); try { if (xml.Trim() != "") { inputXML.LoadXml(xml); XmlNode node = inputXML.SelectSingleNode("/root/initinfo/Type"); if (node != null) { value = node.InnerText.Trim(); } } } catch (Exception e) { MessageBox.Show("Klarte ikke å tolke xml informasjon.\n\nÅrsak:" + e.Message, "program", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return 0; } varav det som är bold är där han stoppar. Endret 9. februar 2010 av Nyhetsfoto Lenke til kommentar
muggsopp Skrevet 9. februar 2010 Del Skrevet 9. februar 2010 Vel, mange IT avdelinger har som policy "Virker det, la det være". Ikke alle vil ha oppdateringer hele tiden. Husk at det finnes store ASP leverandører der ute som fortsatt kjører på win2000 og Win2003 servere. Selv har vi valgt å gå for .NET3.5 i våre distribusjoner nå, men det betyr at mange av våre kunder ikke kan oppgradere, nettop fordi deres ASP leverandør fortsatt kjører Windows 2000 server og der er ikke .NET3 en gang mulig å installere. Så at du "gir opp" på grunn av at folk fortsatt "knoter" med .NET2 forteller meg bare at du ikke har dette som businness Joda, jeg jobber nemlig med slike knotete forhold selv. Det hele koker ned til at ASP-leverandører er veldig føyelige når det blir snakk om at kundene deres bytter ASP-leverandør hvis de ikke oppgraderer til Server 2003. Hvis det er slik at dere lar dere diktere av frykten for kundens respekt for ASP-leverandørens uvitenhet om nyere systemer, har dere strengt tatt en utfordring. Sist jeg sjekket, er det systemleverandørene som dikterer systemkravene, og ikke ASP-leverandørene som skal drifte løsningen. Kanskje verdt å ha dette i bakhodet? Lenke til kommentar
muggsopp Skrevet 9. februar 2010 Del Skrevet 9. februar 2010 detta är ett 10 år gammalt program som skall få en liten uppdatering.så att byta ut till .NET 3 är ikke aktuellt =) vi kör VS 2008 c# .NET 2.0 DLL kallas opp från en C++ app og vi har prövd med XmlDocument og Xpath henger på denna koden TEST 1: ASCIIEncoding encoding = new ASCIIEncoding(); Stream stream = new MemoryStream(encoding.GetBytes(xml)); XPathDocument doc = new XPathDocument(stream); XPathNavigator docNav = doc.CreateNavigator(); MessageBox.Show("Test 2..."); XPathNavigator node = docNav.SelectSingleNode("/root/initinfo/Type"); MessageBox.Show("Test 3..."); value = node != null ? node.InnerXml.Trim(): null; TEST 2: XmlDocument inputXML = new XmlDocument(); try { if (xml.Trim() != "") { inputXML.LoadXml(xml); XmlNode node = inputXML.SelectSingleNode("/root/initinfo/Type"); if (node != null) { value = node.InnerText.Trim(); } } } catch (Exception e) { MessageBox.Show("Klarte ikke å tolke xml informasjon.\n\nÅrsak:" + e.Message, "program", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return 0; } varav det som är bold är där han stoppar. Det er her jeg finner en stor fallgruve: ASCIIEncoding encoding = new ASCIIEncoding(); Hold deg til Unicode. Lenke til kommentar
muggsopp Skrevet 9. februar 2010 Del Skrevet 9. februar 2010 detta är ett 10 år gammalt program som skall få en liten uppdatering.så att byta ut till .NET 3 är ikke aktuellt =) vi kör VS 2008 c# .NET 2.0 DLL kallas opp från en C++ app og vi har prövd med XmlDocument og Xpath henger på denna koden TEST 1: ASCIIEncoding encoding = new ASCIIEncoding(); Stream stream = new MemoryStream(encoding.GetBytes(xml)); XPathDocument doc = new XPathDocument(stream); XPathNavigator docNav = doc.CreateNavigator(); MessageBox.Show("Test 2..."); XPathNavigator node = docNav.SelectSingleNode("/root/initinfo/Type"); MessageBox.Show("Test 3..."); value = node != null ? node.InnerXml.Trim(): null; TEST 2: XmlDocument inputXML = new XmlDocument(); try { if (xml.Trim() != "") { inputXML.LoadXml(xml); XmlNode node = inputXML.SelectSingleNode("/root/initinfo/Type"); if (node != null) { value = node.InnerText.Trim(); } } } catch (Exception e) { MessageBox.Show("Klarte ikke å tolke xml informasjon.\n\nÅrsak:" + e.Message, "program", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return 0; } varav det som är bold är där han stoppar. Og jeg glemte dette: SelectSingleNode() returnerer XmlNode Lenke til kommentar
TotalVarsling Skrevet 9. februar 2010 Forfatter Del Skrevet 9. februar 2010 Og jeg glemte dette: SelectSingleNode() returnerer XmlNode vad menar du med den? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå