我需要获取包含特定属性的标记列表。我正在使用DITA xml,我需要找出所有具有href属性的标签。
这里的问题是该属性可能在任何标记内,因此XPath在这种情况下不起作用。例如,图像标签可以包含href,topicref标签可以包含href,等等。
所以我需要获得XmlNodeList
(由getElementByTagName
方法返回)。理想情况下,我需要一个应该返回getElementByAttributeName
的方法XmlNodeList
。
答案 0 :(得分:5)
我可能在这里误解了你的问题,但我认为你可以使用XPath表达式。
var nodes = doc.SelectNodes("//*[@href='pic1.jpg']");
上述内容应返回href='pic1.jpg'
的所有元素,其中doc
为XmlDocument
答案 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));