2016-12-18 6 views
1

Je suis encore nouveau sur XML et j'ai des problèmes avec ce projet sur lequel je travaille. J'ai besoin d'extraire un élément xml spécifique d'un C# XmlDocument. Dans l'exemple ci-dessous, je veux retirer l'élément ns: AMOUNT de la balise RATING (193.13 devrait être le résultat). Comment feriez-vous correctement cela? Merci beaucoup!Extrait l'élément XML de XmlDocument

<?xml version="1.0" encoding="UTF-8" ?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soapenv:Body> 
     <ns:getResp xmlns:ns="http://example"> 
      <ns:jobReturn> 
       <ns:ITEM> 
        <ns:AMOUNT>24.7</ns:AMOUNT> 
       </ns:ITEM> 
       <ns:RATING> 
        <ns:RefNum>1234567890</ns:RefNum> 
        <ns:AMOUNT>193.13</ns:AMOUNT> 
       </ns:RATING> 
      </ns:jobReturn> 
     </ns:getResp> 
    </soapenv:Body> 
</soapenv:Envelope> 

Répondre

1

Je pense que votre problème est que vous avez besoin de XmlNamespaceManager pour gérer la partie ns. donc

XmlDocument xmlDoc = new XmlDocument(); 
xmlDoc.Load(@"your.xml"); 
XmlNamespaceManager ns = new XmlNamespaceManager(xmlDoc.NameTable); 
ns.AddNamespace("ns", "http://example"); 
XmlNode node = xmlDoc.SelectSingleNode("//ns:RATING/ns:AMOUNT", ns); 
var result = node.InnerText;