如果XPath查询中不存在第一个节点,如何返回其他节点?

时间:2011-03-13 20:25:30

标签: xml xpath

如果第一个节点名不存在,我想返回一个辅助节点名,例如:

return xpath_query("/root/(blue|red)");
// return /root/blue, or /root/red if it doesn't exist

这可能吗?

由于

1 个答案:

答案 0 :(得分:3)

答案:是。

这是一个有效的XPath 2.0表达式:

/root/(blue|red)

含义blue和[{1}}根元素的red个孩子。

如果您想要一个另一个,如果不存在,您可以依赖文档顺序,如:

root

或者更明确地说:

/root/(blue|red)[1]

XPath 1.0翻译:

/root/(if (blue) then blue else red)