Système.Xml.XPath.XPathException: l'Expression doit correspondre à un node-set lors de l'exécution de SelectSingleNode(“//(artiste|auteur)”)
Quelqu'un peut-il m'expliquer pourquoi ça ne marche pas?
Je suis d'exécution
XmlNode xmlNode = xmlDocument.SelectSingleNode("//(artist|author)");
et je reçois
Système.Xml.XPath.XPathException: l'Expression doit correspondre à un node-set.
mais cela fonctionne et ne soulève pas l'exception, même quand il y a beaucoup d'artiste nœuds
XmlNode xmlNode = xmlDocument.SelectSingleNode("//artist");
Peut-être //(artiste|auteur) donne 0 nœuds?
nope, je l'ai testé sur d'autres xpath évaluateurs :S
Ce qui se passe avec "//l'artiste|//auteur"?
Essayez de rechercher dans le débogueur (à l'aide de xmlDoc.SelectNodes), parce que dans certains cas limites différentes bibliothèques peuvent se comporter différemment
Saunders il a travaillé 🙂
nope, je l'ai testé sur d'autres xpath évaluateurs :S
Ce qui se passe avec "//l'artiste|//auteur"?
Essayez de rechercher dans le débogueur (à l'aide de xmlDoc.SelectNodes), parce que dans certains cas limites différentes bibliothèques peuvent se comporter différemment
Saunders il a travaillé 🙂
OriginalL'auteur knoopx | 2009-03-10
Vous devez vous connecter pour publier un commentaire.
À ma connaissance, vous pouvez utiliser '|' juste au niveau supérieur d'une Requête XPath, alors essayez la requête
Au revoir la façon de faire les recherches récursives (//) n'est pas très rapide, donc assurez-vous que votre document dom est petit.
Mise à jour:
Je l'ai regardé dans les spécification:
Cela signifie que tout ce que vous écrire de droite et de gauche des "|" doit être utilisable comme une requête xpath sur son propre, le"|", puis crée l'union.
Spécifiquement vous ne pouvez pas dire "recherche récursive pour (quelque chose qui s'appelle l'auteur OU quelque chose qui s'appelle l'artiste)", car "quelque chose qui s'appelle l'auteur de" ne pas évaluer le résultat d'un xpath-requête (un ensemble de nœuds).
OriginalL'auteur froh42
//artist|//author
fonctionne avec XPATH 1.0 et 2.0//(artist|author)
fonctionne avec XPATH 2.0Microsoft est un paresseux société. Leur cadre de soutien seulement XPATH 1.0
OriginalL'auteur Ergil