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
如何组合两个XPath表达式?_Xpath_Nodes_Concat - Fatal编程技术网

如何组合两个XPath表达式?

如何组合两个XPath表达式?,xpath,nodes,concat,Xpath,Nodes,Concat,我需要组合两个XPath表达式 第一个XPath是: (//div[@class=“filtername”]) 例如,返回“纽约酒店” 第二点是: (//div[@class=“filternumber”]) 例如,返回“100” 因此,当组合这两个表达式时,我希望结果如下所示:“纽约酒店100” 我如何做到这一点 我想我需要使用concat函数,但我不知道如何使用它 非常感谢。如果两个XPath-1.0表达式都只产生一个结果,您可以使用以下fn:concat表达式: concat(//

我需要组合两个XPath表达式

  • 第一个XPath是:
(//div[@class=“filtername”])

例如,返回“纽约酒店”

  • 第二点是:
(//div[@class=“filternumber”])

例如,返回“100

因此,当组合这两个表达式时,我希望结果如下所示:“纽约酒店100

我如何做到这一点

我想我需要使用concat函数,但我不知道如何使用它


非常感谢。

如果两个XPath-1.0表达式都只产生一个结果,您可以使用以下
fn:concat
表达式:

concat(//div[@class="filtername"], ' ', //div[@class="filternumber"])
这应返回“纽约酒店100”。

(但如果没有XML文件,我们无法对此进行验证)。

如果两个XPath-1.0表达式都只产生一个结果,则可以使用以下
fn:concat
表达式:

concat(//div[@class="filtername"], ' ', //div[@class="filternumber"])
这应返回“纽约酒店100”。

(但没有XML文件,我们无法验证)。

zx485,谢谢您的回复。不幸的是,这个表达不起作用。另外,当使用XPath测试仪测试它时,表达式会给出一个错误。下面是我试图提取数据的一个网页的URL:[。下面是我将要使用的两个XPath表达式:1)
(//span[@class=“nameFilter”])
这将返回“Olimpos”。例如,2)
(//span[@class=“count”])
这将返回“1”例如,当组合这两个表达式时,我需要的结果如下:“Olimpos1”@TheOptimizer:zx485的XPath很好,除了不包括一个带有单个空格字符的字符串以提供两个选定字符串之间的请求分隔外。这样的修改对您来说很简单,并且提供的XPath表达式没有语法问题。请仔细检查您的验证尝试。使用
string(//div[@class=“filter item result filter wrap active”]//label)
也可以是一个选项。请注意第二个XPath,因为它包含右双引号而不是引号。一些“XPath测试程序”将只处理返回节点集的XPath表达式,而此表达式返回字符串如果不告诉我们它给出了什么错误,那么就几乎无法帮助您。zx485,E.Wiest,感谢你们提供了XPath表达式。它们都工作得很好。zx485,感谢您的回复。不幸的是,该表达式不起作用。另外,当使用XPath测试仪测试时,表达式会给出一个错误。下面是我试图提取数据的一个网页:[。以下是我将要使用的两个XPath表达式:1)
(//span[@class=“nameFilter”])
例如,这将返回“Olimpos”。2)
(//span[@class=“count”])
这将返回“1”例如,当组合这两个表达式时,我需要的结果如下:“Olimpos1”@TheOptimizer:zx485的XPath很好,除了不包括一个带有单个空格字符的字符串以提供两个选定字符串之间的请求分隔外。这样的修改对您来说很简单,并且提供的XPath表达式没有语法问题。请仔细检查您的验证尝试。使用
string(//div[@class=“filter item result filter wrap active”]//label)
也可以是一个选项。请注意第二个XPath,因为它包含右双引号而不是引号。一些“XPath测试程序”将只处理返回节点集的XPath表达式,而此表达式返回字符串。但是,如果告诉我们某个“给出了错误”,而不告诉我们它给出了什么错误,则几乎无法帮助您。zx485,E.Wiest,感谢您提供的XPath表达式。它们都工作得非常好。