我们希望通过XPath表达式实现对元素的存在检查.XPath表达式是在外部定义的.我们正在尝试使用System.Xml.XPath中的XPathEvaluate扩展方法,但是当我们尝试执行以下操作时它会抱怨.
XDocument d = new XDocument( new XElement("test", new XElement("element"), new XElement("element"))); bool b = (bool)d.XPathEvaluate("/test/element[exists()]");
此函数当前失败,并出现"需要命名空间管理器或XsltContext.此查询具有前缀,变量或用户定义的函数.".如果我们尝试,我们会收到相同的消息exists(/test/element)
.
我们想在XPath表达式中表达的其他事情之一是元素的数量,例如count(/text/element) = 2
.
测试条件应该是XPath表达式的一部分.
函数调用d.XPathEvaluate("/test/element[last()]")
按预期进行求值.
有可能用XPathEvaluate
这种方式吗?
[编辑]是的.
如果没有,.Net框架中是否有其他选择?
[编辑]是的.
[编辑]剩下的问题:为什么exists
功能不起作用?
你试过XPath了吗?
boolean(/test/element)