ubiquitour.com

Cómo utilizar Linq to XML con Namespaces en C#

Cómo utilizar Linq to XML con Namespaces en C#

Con todo, LINQ (Language Integrated Query) es bastante útil. Fácilmente puede recuperar datos de colecciones, XML y bases de datos con todas las herramientas de. Personalmente, encuentro más tiempo para el XML resto API. Por ejemplo la búsqueda de Twitter feed.

Instrucciones

1 Elegir algunos XML que tiene un espacio de nombres. Para este ejemplo utilizaré la búsqueda de Twitter API con la consulta "sea cual sea". Este es el código simplificado para agarrar el XML del feed. Desde entonces, este artículo es sobre LINQ y no adquirir el XML, que es muy simple, buggy como no maneja errores dejé (respuesta o de lo contrario), y utiliza el WebClient que normalmente no utilizo fuera de contexto.

Este código simplemente descargas la respuesta de la dirección URL como una cadena y "xml" establece en el valor.

Ejemplo de código:

cadena xml;usando (web var = nuevo WebClient())

xml = web.DownloadString("http://search.twitter.com/search.atom?q=whatever");2

Escriba su LINQ con el espacio de nombres. Crear el objeto XNamespace usando su propia taquigrafía simplemente asignar el nombre de espacio de nombres como una cadena. En este caso, es el estándar Atom "http://www.w3.org/2005/Atom & amp; quot;. Cuando se utiliza este espacio de nombres de elementos, simplemente añadir la variable XNamespace a la cadena del nombre del elemento. IE ns + "entrada", para seleccionar los elementos de entrada en el espacio de nombres asignada a la variable XNamespace "ns".

Este código asigna la variable XNamespace "ns" en el espacio de nombres de átomo, entonces utiliza LINQ en descendientes de XDocument llamados "entrada" en el espacio de nombres definido anteriormente.

Ejemplo de código:

XNamespace ns = "http://www.w3.org/2005/Atom & amp; quot;descendientes de var = i en XDocument.Parse(xml). Descendientes (ns + "entrada")

select i;3

Aplican a su situación. Jugar con el código para encontrar los nodos que desea seleccionar hacia fuera, añadir tu donde cláusula si necesita ser y sobre todo divertirse (o por lo menos hacer dinero).

Ejemplo de código completo:

cadena xml;usando (web var = nuevo WebClient())

xml = web.DownloadString("http://search.twitter.com/search.atom?q=whatever");

XNamespace ns = "http://www.w3.org/2005/Atom & amp; quot;descendientes de var = i en XDocument.Parse(xml). Descendientes (ns + "entrada")

select i;

Consejos y advertencias

  • Siempre jugar.