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

发布于 2024-09-18 14:31:48 字数 322 浏览 8 评论 0原文

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

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

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

I need to get a list of tags that contain a specific attribute. I am using DITA xml and I need to find out all tags that has a href attribute.

The problem here is that the attribute may be inside any tag so XPath will not work in this case. For example, an image tag may contain a href, a topicref tag may contain a href, and so on.

So I need to get a XmlNodeList (as returned by the getElementByTagName method). Ideally I need a method getElementByAttributeName that should return XmlNodeList.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

故事未完 2024-09-25 14:31:48

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

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

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

I might have misunderstood your problem here, but I think you could possibly use an XPath expression.

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

The above should return all elements with href='pic1.jpg', where doc is the XmlDocument

我早已燃尽 2024-09-25 14:31:48

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

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

If you're on C#, then the following approach might work for you:

XDocument document = XDocument.Load(xmlReader);
XAttribute xa = new XAttribute("href", "pic1.jpg");
var attrList = document.Descendants().Where (d => d.Attributes().Contains(xa));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文