题
我需要获取包含特定属性的标签列表。我正在使用 DITA xml,我需要找出所有具有 href 属性的标签。
这里的问题是该属性可能位于任何标记内,因此 XPath 在这种情况下将不起作用。例如,图像标签可以包含href,topicref标签可以包含href,等等。
所以我需要得到一个 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));
不隶属于 StackOverflow