2012-05-09 30 views
6

私はXmlElementのC#で作業しています。私にはXmlElementがあります。 XmlElementのソースは、以下のサンプルのようになります。XMlElementを使用して要素の属性の値を取得する方法

サンプル:

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

私は要素名aを検索するために、上記のXMLをループしています。私はまた、その要素のIDを変数に抽出します。

基本的に、私は要素のID属性を取得したいと考えています<a>。子要素または別個の親として発生することがあります。

どのようにすることができますか?

+0

多分ここで同じ質問http://stackoverflow.com/questions/1216669/issue-to-get-specific-xml-element-value-using-c-sharp – chanhle

+1

実際のXMLまたはHTMLを解析していますか?これまでに何を試しましたか? – SimonC

+0

実際のXMLを解析しています – Patan

答えて

4

あなたはこのようにLINQからXMLを使用することができますC#4.0を使用しているので:

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

は関係なく、それが階層にある場合のあなたの要素aを与える必要があります。あなたのコメントから


、唯一常にXmlDocumentとのXmlElementクラスを使用するコードのための同等のコードは次のようになります。

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

私のアプリケーションはXmlElementオブジェクトのみをサポートします。それに応じてあなたの答えを編集できますか? – Patan

+0

@ User222私は自分の答えを更新しました。 – gideon

+0

お返事ありがとうございます – Patan

関連する問題