Il mio codice non restituisce il nodoXPath non funziona come desiderato in C#
XmlDocument xml = new XmlDocument();
xml.InnerXml = text;
XmlNode node_ = xml.SelectSingleNode(node);
return node_.InnerText; // node_ = null !
Sono abbastanza sicuro che il mio XML e XPath siano corretti.
mio XPath: /ItemLookupResponse/OperationRequest/RequestId
mio 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>
Il nodo miei rendimenti XPath è sempre nullo per qualche motivo. Qualcuno può aiutare?
@ Nick Brooks: no, se c'è uno spazio dei nomi XML sull'elemento radice, allora il vostro Gli elementi XML di seguito che si trovano in quello spazio dei nomi, e quindi è necessario fare riferimento a loro utilizzando tale spazio dei nomi. Questo è l'intero punto dello spazio dei nomi XML: essere in grado di distinguere gli elementi XML del potenziale con lo stesso nome, inserendoli in spazi dei nomi specifici dell'applicazione o del fornitore. –
Lo spazio dei nomi può essere aggiunto in questo modo, il che è un po 'meglio di codificare in modo rigido lo spazio dei nomi nsmgr.AddNamespace ("x", doc.DocumentElement.NamespaceURI); –
Um, non possiamo in qualche modo impostarlo su (A) usare automaticamente tutti gli attributi 'xmlns', o (B) solo dire a .NET di ignorare gli spazi dei nomi e abbinare qualunque cosa vediamo letteralmente nel nostro file XML? Inoltre, da dove viene la stringa '" x "'? – Qwertie