2011-11-16 15 views
7

Sto lavorando su un'applicazione mobile e devo leggere un feed xml e analizzare le informazioni. C'è un tag speciale come questo <dc:creator> Jonethon Owens </dc:creator>Sintassi XML durante l'utilizzo di Colon (:), in Tag

In C# sto usando LINQ to XML e non so come gestire esattamente questo tipo di tag per analizzare e ottenere le informazioni.

Se qualcuno può spiegare come ottenere ciò, è molto apprezzato. Grazie in anticipo

+0

Verificare se 'dc' è stato dichiarato come spazio dei nomi nella parte superiore dell'xml. – Kangkan

+0

Nella parte superiore del documento xml si dice xmlns: dc = "http://purl.org/dc/elements/1.1/" – JibW

+0

Quindi hai ricevuto la risposta da FailedDev (non fallendo)! – Kangkan

risposta

10

È necessario il prefisso dello spazio dei nomi.

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


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

      select ... 
+0

Grazie FailedDev, sto ottenendo un'eccezione "oggetto nullo". Posso dare XNamespace dc = "purl.org/dc/elements/1.1/". Perché nella parte superiore del file XML indica xmlns: dc = "purl.org/dc/elements/1.1/". È qualcos'altro che dovrebbe assegnare a XNamespace dc. – JibW

+0

@JibW No questo è il tuo spazio dei nomi. Stai ricevendo l'eccezione da qualche altro pezzo di codice, che non stai mostrando. – FailedDev

+0

Tutti gli altri tag XML sono normali. Non hanno il punto e virgola. Così altri funzionano bene quando commento [Creatore = (stringa) risultato.Elemento (dc + "creatore"). Valore]. Ho dato a XNamespace dc = "purl.org/dc/elements/1.1/" come questo. Non sono sicuro che il valore che ho assegnato alla dc sia corretto – JibW