2011-11-16 53 views
7

Estoy trabajando en una aplicación móvil y tengo que leer un feed xml y analizar la información. Allí tiene una etiqueta especial como esta <dc:creator> Jonethon Owens </dc:creator>XML Sintaxis al usar dos puntos (:), en las etiquetas

En C# Estoy usando LINQ a XML y no sé cómo tratar exactamente con este tipo de etiqueta para analizar y obtener la información.

Si alguien puede explicar cómo lograr esto, realmente lo aprecio. Gracias de antemano

+0

Ver si 'dc' ha sido declarado como un espacio de nombres en la parte superior del xml. – Kangkan

+0

En la parte superior del documento xml dice xmlns: dc = "http://purl.org/dc/elements/1.1/" – JibW

+0

¡Así que tiene la respuesta de FailedDev (no falla)! – Kangkan

Respuesta

10

Necesita el prefijo del espacio de nombres.

XNamespace dc = "http://purl.org/dc/elements/1.1/"; 


var query = from lst in XElement.Load(@"foo.xml").Elements(dc +"creator") 

      select ... 
+0

Gracias FailedDev, obtengo una excepción "objeto nulo". Puede ser que le di XNamespace dc = "purl.org/dc/elements/1.1/". Porque en la parte superior del archivo XML indica xmlns: dc = "purl.org/dc/elements/1.1/". ¿Es otra cosa lo que debe asignar a XNamespace DC? – JibW

+0

@JibW No, este es su espacio de nombres. Estás recibiendo la excepción por algún otro código, que no estás mostrando. – FailedDev

+0

Todas las demás etiquetas XML son normales. Ellos no tienen Semicolon. Entonces, otros funcionan bien cuando comento [Creator = (string) result.Element (dc + "creator"). Value]. Le di a XNamespace dc = "purl.org/dc/elements/1.1/" como esto. No estoy seguro de que el valor que asigné al CD sea correcto – JibW

Cuestiones relacionadas