Maison >développement back-end >C++ >Comment puis-je analyser efficacement du XML avec des espaces de noms à l'aide de LINQ to XML ?

Comment puis-je analyser efficacement du XML avec des espaces de noms à l'aide de LINQ to XML ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-19 02:09:09906parcourir

How Can I Effectively Parse XML with Namespaces Using LINQ to XML?

Utilisez LINQ to XML pour analyser le XML contenant des déclarations d'espace de noms

L'analyse XML contenant des déclarations d'espace de noms peut s'avérer difficile avec LINQ to XML.

Considérez le code XML suivant :

<code class="language-xml"><Response xmlns="http://myvalue.com"><Result xmlns:a="http://schemas.datacontract.org/2004/07/My.Namespace" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><a:TheBool>true</a:TheBool><a:TheId>1</a:TheId></Result></Response></code>

Pour analyser ce XML nous pouvons utiliser le code suivant :

<code class="language-csharp">XDocument xmlElements = XDocument.Parse(theXml);

XNamespace ns = "http://myvalue.com";
XNamespace nsa = "http://schemas.datacontract.org/2004/07/My.Namespace";
var elements = from data in xmlElements.Descendants(ns + "Result")
              select new
              {
                  TheBool = (bool)data.Element(nsa + "TheBool"),
                  TheId = (int)data.Element(nsa + "TheId"),
              };</code>

Notez l'utilisation de Descendants dans ns et de Elements dans nsa. Ces espaces de noms permettent aux méthodes LINQ to XML d'identifier les éléments corrects.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn