Mon code ne retourne pas le nœudXPath ne fonctionne pas comme on le souhaite en C#
XmlDocument xml = new XmlDocument();
xml.InnerXml = text;
XmlNode node_ = xml.SelectSingleNode(node);
return node_.InnerText; // node_ = null !
Je suis sûr que mon XML et XPath sont corrects.
Mon Xpath: /ItemLookupResponse/OperationRequest/RequestId
Mon XML:
<?xml version="1.0"?>
<ItemLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2005-10-05">
<OperationRequest>
<RequestId>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx</RequestId>
<!-- the rest of the xml is irrelevant -->
</OperationRequest>
</ItemLookupResponse>
Le nœud my retourne XPath est toujours nul pour une raison quelconque. Quelqu'un peut-il aider?
@ Nick Brooks: non, s'il y a un espace de noms XML sur l'élément racine, votre Les éléments XML ci-dessous qui sont dans cet espace de noms, et donc vous devez les référencer en utilisant cet espace de noms. C'est tout le point de l'espace de noms XML - être capable de distinguer les éléments XML de potentiel du même nom, en les mettant dans des espaces de noms spécifiques aux applications ou aux fournisseurs. –
L'espace de noms peut être ajouté comme ceci, ce qui est un peu mieux que coder en dur l'espace de noms nsmgr.AddNamespace ("x", doc.DocumentElement.NamespaceURI); –
Um, ne pouvons-nous pas le configurer de manière à (A) utiliser automatiquement tous les attributs de 'xmlns', ou (B) juste dire .NET pour ignorer les espaces de noms et correspondre à ce que nous voyons littéralement dans notre fichier XML? Aussi, d'où vient la chaîne '" x "? – Qwertie