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

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

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

有帮助吗?

解决方案

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

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

上面应该返回所有元素 href='pic1.jpg', , 在哪里 doc 是个 XmlDocument

其他提示

如果您使用 C#,那么以下方法可能适合您:

XDocument document = XDocument.Load(xmlReader);
XAttribute xa = new XAttribute("href", "pic1.jpg");
var attrList = document.Descendants().Where (d => d.Attributes().Contains(xa));
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top