2012-05-09 59 views
6

Pracuję nad XmlElement w języku C#. Mam numer XmlElement. Źródło XmlElement będzie wyglądać jak poniższy przykład.jak uzyskać wartości atrybutu elementu za pomocą XMlElement

Próbka:

<data> 
    <p>hello all 
     <strong> 
      <a id="ID1" href="#" name="ZZZ">Name</a> 
     </strong> 
    </p> 
    <a id="ID2" href="#" name="ABC">Address</a> 
</data> 

Mam pętli powyżej XML do wyszukiwania nazwy elementu a. Chcę również wyodrębnić identyfikator tego elementu do zmiennej.

Zasadniczo chcę uzyskać atrybut ID elementu <a>. Może występować jako element podrzędny lub jako oddzielny element nadrzędny.

Czy ktoś może pomóc, jak to zrobić.

+0

może samo pytanie tutaj http://stackoverflow.com/questions/1216669/issue-to-get-specific-xml-element-value-using-c-sharp – chanhle

+1

Czy parsujesz prawdziwy XML lub HTML? Czego spróbowałeś do tej pory? – SimonC

+0

Parsuję rzeczywiste XML – Patan

Odpowiedz

4

Ponieważ używasz C# 4.0 można użyć LINQ-xml tak:

XDocument xdoc = XDocument.Load(@"C:\Tmp\your-xml-file.xml"); 
foreach (var item in xdoc.Descendants("a")) 
{ 
    Console.WriteLine(item.Attribute("id").Value); 
} 

powinno dać element a niezależnie od tego, gdzie znajduje się w hierarchii.


ze swojego komentarza do kodu, który korzysta tylko z klas XMLDocument i XMLELEMENT odpowiednik kod byłoby:

XmlDocument dd = new XmlDocument(); 
dd.Load(@"C:\Tmp\test.xml"); 
XmlElement theElem = ((XmlElement)dd.GetElementsByTagName("data")[0]); 
//   ^^ this is your target element 
foreach (XmlElement item in theElem.GetElementsByTagName("a"))//get the <a> 
{ 
    Console.WriteLine(item.Attributes["id"].Value);//get their attributes 
} 
+0

Moja aplikacja będzie obsługiwać tylko obiekt XmlElement. Czy możesz odpowiednio edytować swoją odpowiedź. – Patan

+0

@ Użytkownik222 Zaktualizowałem moją odpowiedź. – gideon

+0

dziękuję za odpowiedź – Patan

Powiązane problemy