获取一个XmlNode给它的XmlAttributes

时间:2015-03-15 19:47:48

标签: c# xml xpath xml-parsing

我有一个像这样的XmlNode:

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

鉴于其属性:

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

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

XmlNode node = a.Node;

我尝试了ParentNode,但它似乎不起作用(返回null)。

2 个答案:

答案 0 :(得分:1)

You can use

XmlElement node = a.OwnerElement;

或使用XPath:

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

就灵活性而言,第一种方法要求变量a已经是XmlAttribute或要求您将其转换为一个,但它会为您提供XmlElement而不需要显性演员。

相比之下,a只需要XmlNode来使用第二种方法,但该方法的返回值也是XmlNode

答案 1 :(得分:1)

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

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