如何查找具有特定属性的XML标记(在C#中)

时间:2010-09-06 12:38:47

标签: c# xml dita

我需要获取包含特定属性的标记列表。我正在使用DITA xml,我需要找出所有具有href属性的标签。

这里的问题是该属性可能在任何标记内,因此XPath在这种情况下不起作用。例如,图像标签可以包含h​​ref,topicref标签可以包含h​​ref,等等。

所以我需要获得XmlNodeList(由getElementByTagName方法返回)。理想情况下,我需要一个应该返回getElementByAttributeName的方法XmlNodeList

2 个答案:

答案 0 :(得分:5)

我可能在这里误解了你的问题,但我认为你可以使用XPath表达式。

var nodes = doc.SelectNodes("//*[@href='pic1.jpg']");

上述内容应返回href='pic1.jpg'的所有元素,其中docXmlDocument

答案 1 :(得分:3)

如果您使用的是C#,则以下方法可能对您有用:

XDocument document = XDocument.Load(xmlReader);
XAttribute xa = new XAttribute("href", "pic1.jpg");
var attrList = document.Descendants().Where (d => d.Attributes().Contains(xa));