获取 XmlNode 给定其 XmlAttributes 之一

Getting an XmlNode given one of its XmlAttributes

我有一个这样的 XmlNode:

XmlNode node = document.GetElementById("myid");

鉴于其属性:

XmlAttribute a = node.Attributes("type");

有没有办法取回节点?
像这样:

XmlNode node = a.Node;

我试过ParentNode,但好像不行(返回null)。

You can use:

XmlElement node = a.OwnerElement;

或使用 XPath:

XmlNode node = a.SelectSingleNode("..");

在灵活性方面,第一种方法要求变量 a 已经是一个 XmlAttribute 或者要求您将其转换为一个,但它给您一个 XmlElement 没有需要显式转换。

相比之下,a 只需要是 XmlNode 就可以使用第二种方法,但是方法上的 return 值也是 XmlNode

这个 SO 线程应该可以回答您的问题 Search XML file for nodes with specific attribute value in .NET 2.

XPath 也是一个选项,因为在获得所有匹配的元素后,您可以使用 Linq 获得您感兴趣的特定节点。