2016-05-05 2 views
2

J'ai un fichier XML qui a deux nœuds avec le même nom, et qui a besoin de valider si le premier existe. J'essaye de faire avec SelectSingleNode et j'ai trouvé quelques exemples XPath.Sélection d'un nœud spécifique à côté d'un autre - C# - SelectSingleNode

fichier XML

<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 
} 

La condition toujours faire le même résultat si je supprime un ou l'autre nœud. Comment puis-je valider l'existence d'un spécifique?

Merci

Répondre

1

Compte tenu de votre XML, je pense que vous voulez vérifier

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

ou

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

Vous ne même pas besoin XPath, mais pouvez utiliser

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