1

仅使用 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 中轻松做到这一点,但这不是我的选择。

4

1 回答 1

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]), ' ')
于 2013-05-13T15:20:34.250 回答