Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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
Xpath 在同一查询中选择属性和文本()_Xpath_Xpath 2.0 - Fatal编程技术网

Xpath 在同一查询中选择属性和文本()

Xpath 在同一查询中选择属性和文本(),xpath,xpath-2.0,Xpath,Xpath 2.0,我想在一个查询中选择一个属性和一个节点的text()值,例如,我有 <Tag1 @myattr='test'>MyText</Tag1> 失败的原因是,仅允许在节点集上使用联合 有什么想法吗?我认为,给定XPath 2.0,您需要一系列字符串值,这些值可以通过//Tag1/(@myattr,)/string()获得。如果需要单个字符串,请使用//Tag1/string连接((@myattr,),“”) 顺便说一句,您的路径//Tag1/@myattr |//Tag1/t

我想在一个查询中选择一个属性和一个节点的text()值,例如,我有

<Tag1 @myattr='test'>MyText</Tag1>
失败的原因是,仅允许在节点集上使用联合


有什么想法吗?

我认为,给定XPath 2.0,您需要一系列字符串值,这些值可以通过
//Tag1/(@myattr,)/string()
获得。如果需要单个字符串,请使用
//Tag1/string连接((@myattr,),“”)


顺便说一句,您的路径
//Tag1/@myattr |//Tag1/text()
将选择一个包含属性值和文本节点的序列。我不知道这会如何失败。

我使用的是jaxen,查询//Tag1/字符串连接(@myattr,),''由于“预期的节点类型”而失败,查询//Tag1/(@myattr,)/string()由于“预期的其中一个”。,“…”,“@',“*”,“您确定使用支持XPath 2.0的Saxon 9这样的引擎吗?或者您为什么将问题标记为
xpath-2.0
?即使使用XPath 1.0,您也应该能够计算路径
//Tag1/@myattr |//Tag1/text()
,为您提供一个包含属性节点和文本节点的节点集。我的建议是只支持XPath2.0,实际上Saxen只支持XPath1.0。很抱歉给你带来了困惑。但是,我不明白为什么我的路径
//Tag1/@myattr |//Tag1/text()
失败了。也许这是萨克森的内部问题。。。!?什么是“萨克森”?我只知道“Saxon”它的存在形式是Saxon 6.5.5执行XSLT和XPath 1.0,Saxon 9.5执行XSLT和XPath 2.0(以及XQuery 1.0)。如果
//Tag1/@myattr |//Tag1/text()
失败,请告诉我们确切的失败消息(如果您需要帮助)以及重现问题的步骤。OMG,我该休息了。。。我写萨克森了吗?我是说贾森。。。。(v1.1.6)。很抱歉
//Tag1/@myattr | //Tag1/text()