是否可以通过使用XPath来执行以下操作?我想在1.0中找到一种方法来实现这一点。我认为它不可能在1.0中。
实施例
<test>
<title>title1</title>
<title>title2</title>
<title>title3</title>
<creator>creator1</creator>
<creator>creator2</creator>
</test>
我想要以下输出:
title1 creator1
title2 creator2
title3
我在想这可能更适合xquery,但我不确定,因为我从未使用过它。将xquery添加到我当前的应用程序以及为什么我要避免这样做会有很多工作。我提出的最接近工作的是使用
/test/title/fn:string-join( (text(), /test/creator/text()[position()]), ' ')
问题是我在这个例子中为所有人获得了两个创作者。我想知道是否有某种方法可以获得当前位置并为创建者设定位置?我知道如何在xslt中轻松完成此操作,但这对我来说不是一个选项。
答案 0 :(得分:0)
这在XPath 1.0中是不可能的。在XQuery(1.0很好)和XPath 2.0中,你都可以这样做:
for $i in 1 to max((count(//title), count(//creator)))
return string-join((//title[$i], //creator[$i]), ' ')