1

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

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

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

4

2 回答 2

5

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

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

以上应返回所有带有的元素href='pic1.jpg',其中docXmlDocument

于 2010-09-06T13:02:45.807 回答
3

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

XDocument document = XDocument.Load(xmlReader);
XAttribute xa = new XAttribute("href", "pic1.jpg");
var attrList = document.Descendants().Where (d => d.Attributes().Contains(xa));
于 2010-09-06T12:56:02.307 回答