具有多个项目的序列的XPath子字符串?

时间:2018-07-15 13:49:09

标签: xml xpath

我有这个xml片段:

     <Route> Bangkok 05.00, Puket 06.30 
     </Route>

我需要没有时间的第一个城市的名字。在此示例中,其为“曼谷”。

我尝试过:

//Route/substring-before(text()," ")

并显示失败无法执行XPath操作。 substring-before()(“ Bangkok 05.00,Puket 06.30”,“”)的第一个自变量不允许包含多个项目的序列

有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

您可以使用天真的方法

substring-before(normalize-space(//Route/text()[1]),' ')

获得Bangkok。但这只会得到名称中没有空格的城市。

要获取这些将更加困难。

答案 1 :(得分:0)

string-join(
     tokenize(
         normalize-space(
            tokenize($a//Route, ",")[1]
         )
         , "\s+"
    )[position() != last()]
    , " "
)