Question

J'essaye de faire un SelectSingleNode sur un XMLDocument en utilisant une expression XPATH. Cependant, lorsque la valeur d'attribut que je recherche contient plusieurs barres obstruées (/), elle renvoie NULL.

Je ne trouve aucune ressource en ligne pour échapper à la barre oblique. Quelqu'un sait-il un moyen de contourner cela? Ou ai-je ma syntaxe trompe pour faire correspondre la valeur d'attribut?

Exemple XML

<?xml version="1.0"?>
  <Root>
    <Page Path="/brand" />
    <Page Path="/brand/armada" />
  </Root>

Cette expression XPath renvoie le nœud correct (par exemple: le premier dans l'échantillon ci-dessus)

XmlNode N = xmlDoc.SelectSingleNode("Root/Page[@Path='/brand']");

Cette expression XPath renvoie nul

XmlNode N = xmlDoc.SelectSingleNode("Root/Page[@Path='/brand/armada']");

Je suis dans un environnement C #, .NET 3.5.

Edit: Merci pour les réponses. J'ai résolu le problème en utilisant une double barre de barre avant dans l'expression sélectionnée.

XmlNode N = xmlDoc.SelectSingleNode("Root//Page[@Path='/brand/armada']");
Était-ce utile?

La solution

Merci pour les réponses. J'ai résolu le problème en utilisant une double barre de barre avant dans l'expression sélectionnée.

XmlNode N = xmlDoc.SelectSingleNode("Root//Page[@Path='/brand/armada']");
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top