使用XPathNavigator检测空XML节点属性的存在

Rob*_*d70 2 .net xpath

有没有一种简单的方法来检测XPathNavigator XML节点上是否存在属性(例如<node>vs. <node attribute="">)?Node.GetAttribute无论如何返回一个空字符串.我唯一能想到的就是检查Node.OuterXML房产,这看起来真的很愚蠢.

(注意:节点实际上不是空的,所以我不能只使用Node.HasAttributes.)

svi*_*ick 5

你可以使用XPath:

elem.SelectSingleNode("@attribute")
Run Code Online (Sandbox Code Playgroud)

这将返回null,如果该attributte attribute不存在,而另一个XPathNavigatorNodeTypeAttribute,并Value包含一个空字符串,如果该属性存在,但是是空的.