为什么我的XPath查询在我想要的节点存在时返回默认节点?

时间:2011-03-14 16:50:00

标签: xpath

我有以下XPath 1.0查询:

/root/Nodes/*[self::CustomNode[not(../DefaultNode)]|self::DefaultNode]/Name

根据我的理解,如果它存在,则返回/root/Nodes/CustomNode/Name,如果找不到,则返回/root/Nodes/DefaultNode/Name。但是,即使/root/Nodes/DefaultNode/Name存在,也会返回/root/Nodes/CustomNode/Name。我有什么想法可以解决这个问题吗?

DefaultNode个节点始终按文档顺序继续CustomNode个节点。

由于

1 个答案:

答案 0 :(得分:1)

您认为垂直线(|)的工作方式是OR吗?

以下是详细信息:http://www.w3schools.com/xpath/xpath_operators.asp

|计算两个节点集:    //书| // cd返回包含所有book和cd元素的节点集

语义:
它返回满足条件A或条件B的节点 它返回满足条件A的节点和满足条件B的节点。