我试图获取除了我提供的所有节点,使用XPath ...代码:
UmbracoHelper.TypedContentAtXPath("//[not(contains(@alias, 'myNode1') or contains(@alias, 'myNode2'))]");
但我收到错误:
Expression must evaluate to a node-set.
我的错误在哪里?
答案 0 :(得分:1)
您未能指定元素名称,谓词(方括号内的表达式)将应用于该名称。它可能是一个特定的名称 - 我不确切知道 - 或通配符(*
,这意味着任何名称的元素):
//*[not(contains(@alias, 'myNode1') or contains(@alias, 'myNode2'))]
答案 1 :(得分:0)
我不确定你的意图是否合适,但你的代码会在doctype别名上进行通配符匹配。所以它会匹配MyNode12上的myNode1。您可以使用类似的东西进行完全匹配(xpath也稍微快一点,因为它不使用contains):
//*[self::myNode1 or self::myNode2]