我有一个像这样的XmlNode:
XmlNode node = document.GetElementById("myid");
鉴于其属性:
XmlAttribute a = node.Attributes("type");
有没有办法取回节点?
像这样:
XmlNode node = a.Node;
我尝试了ParentNode
,但它似乎不起作用(返回null
)。
答案 0 :(得分:1)
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来获取您感兴趣的特定节点。