2015-01-03 28 views
8

Her XML öğesinin, <title /> gibi bir adı vardır - "title". XNode.Nodes() yöntemiyle sağlanan öğeleri numaralandırmak ve her birini etiket adına göre işlemek için foreach kullanın.System.Xml.Linq.XNode'un adı nasıl alınır?

"Başlık" gibi etiket adı almak için XNode öğesinin XElement öğesine XElement.Name.LocalName özelliğine erişmesini sağlarım. ben bu etiketi ayrıştırma denedi sonra

foreach(XElement as_element in doc.Nodes()) 

Sorun göründü: (: XNode)

<title>"Some text"</title> 

Şimdi onun tipi Xtext, ve ben XElement için döküm olamaz. InvalidCastException alıyorum. XNode'un "adı" nı nasıl alabilirim?
+1

İsim ile ne demek istiyorsun? "Bazı metinlerin" adı ne olmalı? Bu bir element değil, bu yüzden bir ismi yok. –

+0

Etiketin adı) element, node) "title" dir. Benim kodumda buna ihtiyacım var, fakat XNode'un XName türünde bir özelliği yok. – Croll

+0

"Bazı Metinlerden" "başlık" almanız gerektiği anlamına mı geliyor? –

cevap

15

INode her zaman bir adı yoktur. XElement içindeki alt öğeleri numaralandırmak için yerine kullanmak daha iyidir, daha sonra bir IEnumerable<XElement> sahibiz.

İlgili konular