Je reçois l'exception que NodeType "None" n'est pas pris en charge lors de la tentative d'exécution du code suivant.C# XmlNodeReader exception NodeType non pris en charge
public int ObjectContentI(string XmlPath)
{
XmlNodeReader xnr = new XmlNodeReader(this.xmlr.SelectSingleNode(XmlPath));
return xnr.ReadElementContentAsInt();
}
this.xmlr est un XmlDocument avec un document chargé avec succès dans celui-ci. XmlPath contient une URL XPath valide.
Comment définir le NodeType (xnr.NodeType est en lecture seule) ou est-ce que je fais autre chose de mal?
Une partie de mon XML:
<?xml version="1.0" encoding="utf-8" ?>
<ship weapons="0">
<cost>
<metal>250</metal>
<crystal>100</crystal>
</cost>
<health>
<shields>750</shields>
<sregene>10</sregene>
<hitpoints>1000</hitpoints>
<oxygen cps="2">25000</oxygen>
</health>
Mon XPath: "/ navire/santé/bouclier/texte()"
Bien que ce ne soit pas une réponse, j'aimerais recommander que si votre solution le permet, je vous recommande fortement de regarder LINQ to XML. Il supprime à peu près tous les points de douleur lorsque vous travaillez avec Xml. NET –
La définition de NodeType n'a pas de sens car cela impliquerait de modifier le XML sous-jacent (et c'est un * lecteur *, pas un écrivain). Je suppose que l'exception survient parce que vous essayez de lire la valeur d'un nœud qui n'a pas de texte interne (auto-fermé?), Bien que je ne sois pas sûr à 100% – Cameron
Pouvez-vous poster la chaîne XPath, parce que l'erreur vous obtiennent des moyens que vous renvoyez un XmlNodeType de None, ce qui est probablement dû au fait que XPath n'est pas correct. Publiez également une partie du XML pour le rendre plus facile à comprendre le bon XPath –