2016-05-05 16 views
2

Ich habe eine XML-Datei, die zwei Knoten mit demselben Namen haben, und müssen validieren, wenn die erste existiert. Ich versuche mit SelectSingleNode zu arbeiten und habe einige XPath-Beispiele gefunden.Wählen Sie einen bestimmten Knoten neben einem anderen - C# - SelectSingleNode

XML Datei

<root> 
    <header/> 
    <mensagem> 
     <header/> 
     <operacoes> 
      <operacao> 
       <titulo> 
      </operacao> 
      <operacao> 
       <titulo> 
      </operacao> 
     </operacoes> 
    </mensagem> 
    <trailer/> 
</root> 

-Code

XmlDocument arquivoXml = new XmlDocument(); 
arquivoXml.Load(arquivo.ToString()); 

if (arquivoXml.DocumentElement.SelectSingleNode("root/header") != null) 
{ 
    // Tryed the condition above with XPath "../header" too 
    // If first header does exists 
} 
else 
{ 
    // If first header does not exists 
} 

Die Bedingung immer tun das gleiche Ergebnis, wenn ich den einen oder anderen Knoten zu entfernen. Wie kann ich die Existenz eines bestimmten validieren?

Dank

Antwort

1

Ihre XML gegeben, ich glaube, Sie könnten überprüfen möchten

if (arquivoXml.SelectSingleNode("root/header") != null) 

oder

if (arquivoXml.DocumentElement.SelectSingleNode("header") != null) 

Sie haben nicht einmal XPath brauchen aber

if (arquivoXml.DocumentElement["header"] != null) 
verwenden
Verwandte Themen