나는 다음의 XPath 1.0 쿼리가 : 제가 이해가 발견되어 있지 않은 경우내가 원하는 노드가있을 때 내 XPath 쿼리가 기본 노드를 반환하는 이유는 무엇입니까?
/root/Nodes/*[self::CustomNode[not(../DefaultNode)]|self::DefaultNode]/Name
,이 존재하는 경우 /root/Nodes/CustomNode/Name
을 반환하거나 /root/Nodes/DefaultNode/Name
됩니다. 그러나 /root/Nodes/CustomNode/Name
이있는 경우에도 /root/Nodes/DefaultNode/Name
이 반환됩니다. 어떻게하면이 문제를 해결할 수 있을까요?
DefaultNode
노드는 항상 문서 순서로 CustomNode
노드를 처리합니다.
감사합니다.
[첫 번째 노드가 XPath 쿼리에없는 경우 어떻게 다른 노드를 반환합니까?] (http://stackoverflow.com/questions/5292135/how-do-i-return- xpath-quer에 존재하지 않는 다른 노드의 노드) –
당신이 내 previus 응답에서 조건을 거꾸로했기 때문에 가정이 잘못되었습니다. 전자가 존재하지 않을 때'CustomNode' 또는'DefaultNode'를 원한다면이 술어'[self :: CustomNode | self :: DefaultNode [not (../ CustomNode)]]' –
을 사용해야합니다. 그것이 문제였습니다. 고맙습니다. – Tom