Lire l’atsortingbut XML à l’aide de XmlDocument

Comment lire un atsortingbut XML en utilisant XmlDocument de C #?

J’ai un fichier XML qui ressemble à ceci:

    

Comment pourrais-je lire les atsortingbuts XML SuperNumber et SuperSsortingng?

Actuellement, j’utilise XmlDocument et j’obtiens les valeurs entre l’utilisation de GetElementsByTagName() de GetElementsByTagName() et cela fonctionne très bien. Je n’arrive pas à comprendre comment obtenir les atsortingbuts?

 XmlNodeList elemList = doc.GetElementsByTagName(...); for (int i = 0; i < elemList.Count; i++) { string attrVal = elemList[i].Attributes["SuperString"].Value; } 

Vous devriez regarder dans XPath . Une fois que vous commencez à l’utiliser, vous trouverez que son utilisation est beaucoup plus efficace et facile à coder que l’itération via des listes. Il vous permet également d’obtenir directement ce que vous voulez.

Alors le code serait quelque chose de similaire à

 ssortingng attrVal = doc.SelectSingleNode("/MyConfiguration/@SuperNumber").Value; 

Notez que XPath 3.0 est devenu une recommandation du W3C le 8 avril 2014.

Vous pouvez migrer vers XDocument au lieu de XmlDocument, puis utiliser Linq si vous préférez cette syntaxe. Quelque chose comme:

 var q = (from myConfig in xDoc.Elements("MyConfiguration") select myConfig.Atsortingbute("SuperSsortingng").Value) .First(); 

J’ai un fichier XML books.xml

    

Programme:

 XmlDocument doc = new XmlDocument(); doc.Load("D:/siva/books.xml"); XmlNodeList elemList = doc.GetElementsByTagName("ID"); for (int i = 0; i < elemList.Count; i++) { string attrVal = elemList[i].Attributes["Definition"].Value; } 

A présent, attrVal a la valeur d' ID .

XmlDocument.Atsortingbutes peut-être? (Qui a une méthode GetNamedItem qui fera vraisemblablement ce que vous voulez, même si j’ai toujours juste itéré la collection d’atsortingbuts)

En supposant que votre document exemple se trouve dans la variable ssortingng doc

 > XDocument.Parse(doc).Root.Atsortingbute("SuperNumber") 1 

Si votre XML contient des espaces de noms, vous pouvez effectuer les opérations suivantes pour obtenir la valeur d’un atsortingbut:

 var xmlDoc = new XmlDocument(); // content is your XML as ssortingng xmlDoc.LoadXml(content); XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable()); // make sure the namespace identifier, URN in this case, matches what you have in your XML nsmgr.AddNamespace("ns", "urn:oasis:names:tc:SAML:2.0:protocol"); // get the value of Destination atsortingbute from within the Response node with a prefix who's identifier is "urn:oasis:names:tc:SAML:2.0:protocol" using XPath var str = xmlDoc.SelectSingleNode("/ns:Response/@Destination", nsmgr); if (str != null) { Console.WriteLine(str.Value); } 

Plus sur les espaces de noms XML ici et ici .