Mon code ne renvoie pas le noeud
XmlDocument xml = new XmlDocument(); xml.InnerXml = text; XmlNode node_ = xml.SelectSingleNode(node); return node_.InnerText; // node_ = null !
Je suis presque sûr que mon XML et Xpath sont corrects.
Mon Xpath: /ItemLookupResponse/OperationRequest/RequestId
Mon XML:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
Le nœud que mon XPath renvoie est toujours nul pour une raison quelconque. Quelqu’un peut aider?
Votre XPath est presque correct – il ne tient simplement pas compte de l’espace de nom XML par défaut sur le nœud racine!
*** you need to respect this namespace ***
Vous devez en tenir compte et modifier votre code comme suit:
XmlDocument xml = new XmlDocument(); xml.InnerXml = text; XmlNamespaceManager nsmgr = new XmlNamespaceManager(xml.NameTable); nsmgr.AddNamespace("x", "http://webservices.amazon.com/AWSECommerceService/2005-10-05"); XmlNode node_ = xml.SelectSingleNode(node, nsmgr);
Et alors votre XPath devrait être:
/x:ItemLookupResponse/x:OperationRequest/x:RequestId
Maintenant, votre node_.InnerText ne devrait définitivement plus être NULL!
Désolé pour la réponse tardive mais j’ai eu un problème similaire il y a un instant.
si vous voulez VRAIMENT ignorer cet espace de noms, supprimez-le simplement de la chaîne que vous utilisez pour initialiser le XmlDocument
text=text.Replace( "", " "); XmlDocument xml = new XmlDocument(); xml.InnerXml = text; XmlNode node_ = xml.SelectSingleNode(node); return node_.InnerText;