Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 如果第一个节点没有';XPath查询中是否不存在?_Xml_Xpath - Fatal编程技术网

Xml 如果第一个节点没有';XPath查询中是否不存在?

Xml 如果第一个节点没有';XPath查询中是否不存在?,xml,xpath,Xml,Xpath,如果第一个节点不存在,我想返回一个辅助节点名称,例如: 返回xpath_查询(“/root/(蓝色|红色)”; //返回/root/蓝色,如果不存在/root/红色 这可能吗 谢谢回答:是的 这是一个有效的XPath 2.0表达式: /root/(blue|red) 含义:蓝色和红色根元素的子元素 如果需要一个或另一个(如果不存在),可以依赖文档顺序,如: /root/(blue|red)[1] 或者更明确地说,比如: /root/(if (blue) then blue else red)

如果第一个节点不存在,我想返回一个辅助节点名称,例如:
返回xpath_查询(“/root/(蓝色|红色)”;
//返回/root/蓝色,如果不存在/root/红色

这可能吗


谢谢回答:是的

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

/root/(blue|red)
含义
蓝色
红色
根元素的子元素

如果需要一个或另一个(如果不存在),可以依赖文档顺序,如:

/root/(blue|red)[1]
或者更明确地说,比如:

/root/(if (blue) then blue else red)
XPath 1.0翻译:

/root/*[self::blue|self::red]

/root/*[self::blue|self::red][1]

/root/*[self::blue|self::red[not(../blue)]]

回答:

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

/root/(blue|red)
含义
蓝色
红色
根元素的子元素

如果需要一个或另一个(如果不存在),可以依赖文档顺序,如:

/root/(blue|red)[1]
或者更明确地说,比如:

/root/(if (blue) then blue else red)
XPath 1.0翻译:

/root/*[self::blue|self::red]

/root/*[self::blue|self::red][1]

/root/*[self::blue|self::red[not(../blue)]]

当我尝试
/colors/(blue | red)[1]/description
时,我得到以下错误:DOMXPath::query():表达式无效。有什么想法吗?谢谢,我正在使用XPath1.0。汤姆:也许你有一个XPath1.0引擎。尝试那些XPath 1.0表达式。我在尝试
/colors/[self:blue | self:red]/description
时也会遇到同样的错误。嗯,吃,工作。如果我想选择blue(如果存在),并且只在blue不存在时才返回红色,那么您的第三个XPath 1.0示例是最简洁的方法吗?谢谢当我尝试
/colors/(蓝色|红色)[1]/description
时,我得到了以下错误:DOMXPath::query():无效表达式。有什么想法吗?谢谢,我正在使用XPath1.0。汤姆:也许你有一个XPath1.0引擎。尝试那些XPath 1.0表达式。我在尝试
/colors/[self:blue | self:red]/description
时也会遇到同样的错误。嗯,吃,工作。如果我想选择blue(如果存在),并且只在blue不存在时才返回红色,那么您的第三个XPath 1.0示例是最简洁的方法吗?谢谢