使用XPath获取除一些节点(对于Umbraco)以外的所有节点

时间:2016-09-03 06:46:32

标签: xpath umbraco

我试图获取除了我提供的所有节点,使用XPath ...代码:

UmbracoHelper.TypedContentAtXPath("//[not(contains(@alias, 'myNode1') or contains(@alias, 'myNode2'))]");

但我收到错误:

Expression must evaluate to a node-set.

我的错误在哪里?

2 个答案:

答案 0 :(得分:1)

您未能指定元素名称,谓词(方括号内的表达式)将应用于该名称。它可能是一个特定的名称 - 我不确切知道 - 或通配符(*,这意味着任何名称的元素):

//*[not(contains(@alias, 'myNode1') or contains(@alias, 'myNode2'))]

答案 1 :(得分:0)

我不确定你的意图是否合适,但你的代码会在doctype别名上进行通配符匹配。所以它会匹配MyNode12上的myNode1。您可以使用类似的东西进行完全匹配(xpath也稍微快一点,因为它不使用contains):

//*[self::myNode1 or self::myNode2]