我有以下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
个节点。
由于
答案 0 :(得分:1)
您认为垂直线(|)的工作方式是OR吗?
以下是详细信息:http://www.w3schools.com/xpath/xpath_operators.asp
|计算两个节点集: //书| // cd返回包含所有book和cd元素的节点集
语义:
它返回满足条件A或条件B的节点
它返回满足条件A的节点和满足条件B的节点。