我正在使用XPATH 1.0并且有一些看起来像这样的XML:
<item>
<images>
<image value="/img/someimage1.png">some title1</image>
<image value="/img/someimage2.png">some title2</image>
<image value="/img/someimage3.png">some title3</image>
<image value="/img/someimage4.png">some title4</image>
</images>
</item>
问题是,我需要连接这些图像的基本URL和@value以获得完整的可下载URL。例如,在// item:
的上下文中concat("http://someurl.com", /images/image/@value)
然而,这种作品只会返回第一张图像。不是全部四个(阵列)。有没有办法按照这个方法做点什么?
/images/image/concat("http://someurl.com", @value)
在其他xpath版本中,我认为string-join会起作用吗?虽然不确定,因为我们使用concat。无论哪种方式,这可能在xpath 1?
提前谢谢。
答案 0 :(得分:2)
您的表达式/images/image/concat("http://someurl.com", @value)
是XPath 2.0。使用纯XPath 1.0无法构造相同的内容,您需要在images/image
元素上使用宿主语言进行迭代,然后在每个图像上使用XPath 1.0来计算concat("http://someurl.com", @value)
,然后使用宿主语言你需要构建一个字符串数组或根据需要连接它们。