7

我正在使用XmlElement c#。我有一个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>

我必须遍历上面的 XML 来搜索元素名称a。我还想将该元素的 ID 提取到变量中。

基本上我想获取元素的 ID 属性<a>。它可以作为子元素出现,也可以作为单独的父元素出现。

任何人都可以帮助它如何完成。

4

1 回答 1

5

由于您使用的是 C# 4.0,因此您可以像这样使用 linq-to-xml:

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
}
于 2012-05-10T05:39:13.177 回答