tjekke xml node i c#

Tags:    .net

Jeg sidder lige med et lille problem:

jeg skal tjekke om en xml node eksisterer i et xml træ.
problem: den thrower en exception hvis den ikke eksisterer...det skal den ikke den skal bare tjekke om den næste node er der i mit array.
kode klip:

//resolve partyname

String[] strtest = new string[2];
strtest[1] = "/ORDER/IDENT[1]/FORMAT[1]";
strtest[0] = "/Order/OrderHeader[1]/OrderNumber[1]/BuyerOrderNumber[1]";

//SW.WriteLine(Xdoc.SelectSingleNode(strtest[0]).InnerText);
for(int j = 0;j < strtest.Length;j++)
{ SW.WriteLine(j);
if(Xdoc.SelectSingleNode(strtest[j]).InnerText.Length > 0)
{
partyName = Xdoc.SelectSingleNode(strtest[j]).InnerText;
break;
}
else
{
partyName = "UNKNOWNPARTY_CHECK_EVENTLOG";
SW.WriteLine("else");
}
}

hvis det ikke eksistrer catcher den flg fejl: Object reference not set to an instance of an object.

jeg forstår godt at det den ikke kan referere til noget der ikke er der...men den skal jo bare fortsætte søgningen

er der nogen der lige kan give lidt hjælp.


Hvorfor gøre det nemt?



4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
du tjekker først på om noden er der:

if (XDoc.SelectSingleNode(strtest[j]) != null)
{
så hent innertext ud
}

(¯`·._.·[Brian Hvarregaard]·._.·´¯)
Praesto et Persto

[Redigeret d. 13/09-05 12:34:09 af Brian Hvarregaard]



Hvilken linie er det du får vejlen i?

For mig ser det ud til du ikke checker om noget eksisterer før du bruger InnerText, kan det være det der er dit problem?

(¯`·._.·[Brian Hvarregaard]·._.·´¯)
Praesto et Persto



Hvilken linie er det du får vejlen i?

For mig ser det ud til du ikke checker om noget eksisterer før du bruger InnerText, kan det være det der er dit problem?

(¯`·._.·[Brian Hvarregaard]·._.·´¯)
Praesto et Persto

Hvorfor gøre det nemt?


Feljen kommer i den hvor jeg tjekker innertext (if(Xdoc.SelectSingleNode(strtest[j]).InnerText.Length > 0) )
, så du har nok ret i din observation...
Men jeg ved ikke hvordan jeg ellers skal tjekke, hvis jeg ikke skal kigge om der er noget...

[Redigeret d. 13/09-05 12:04:19 af Morten]



takker :-) 39p til dig



t