Tecnología

Inicio

Cómo utilizar LINQ to XML con espacios de nombres, en C #



Con todo, LINQ (Language Integrated Query) es bastante práctico. Se puede recuperar fácilmente los datos procedentes de colecciones, XML y bases de datos con todos los construidos en las herramientas. En lo personal, creo que es el más ahorro para el XML de APIs REST tiempo. Por ejemplo, la alimentación de búsqueda de Twitter.

Instrucciones

1 Elija alguna XML que tiene un espacio de nombres. Para este ejemplo voy a utilizar la API de búsqueda de Twitter con la pregunta "lo que sea". Esto es sobre el código simplificado para agarrar el XML de la alimentación. Dado que, en este artículo se trata de LINQ y no adquirir el XML, dejé que esto es muy simple, con errores, ya que no se ocupa de errores (respuesta o de otra manera), y utiliza el cliente Web, que no utilizo normalmente fuera de ejemplos .

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

Código de ejemplo:

xml cadena;
usando (var = new web cliente Web ())

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

2 Escriba su LINQ con el espacio de nombres. Puedo crear el objeto XNamespace utilizando su propio abreviada de solo la asignación del nombre de espacio de nombres como una cadena. En este caso, es el estándar Atom entrada "http://www.w3.org/2005/Atom&quot ;. Al utilizar este espacio de nombres de elementos, sólo tiene que anexar la variable XNamespace a la cadena del nombre del elemento. Ns IE +" " , para seleccionar los elementos de entrada en el espacio de nombres asignados a los "ns" XNamespace variables.

Este código asigna las variables XNamespace "ns" en el espacio de nombres del átomo, a continuación, utiliza LINQ en los descendientes del XDocument nombre de "entrada" en el espacio de nombres definido previamente.

Código de ejemplo:

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

select i;

3 Aplicarse a su situación. Jugar con el código para encontrar los nodos que desea seleccionar a cabo, añadir su cláusula en la que si es necesario, y sobre todo divertirse (o al menos hacer dinero).

ejemplo de código completo:

xml cadena;
usando (var = new web cliente Web ())

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

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

select i;

Consejos y advertencias

  • Siempre jugar.