Xquery找到最后一项

发布于 2025-02-11 20:26:01 字数 459 浏览 1 评论 0原文

使用XML类似:

<item > 
   <datapoint>5</datapoint>
</item>
<item > 
   <datapoint>4</datapoint>
</item>
<item > 
   <datapoint>6</datapoint>
</item>
<item > 
   <datapoint>8</datapoint>
</item>
<item > 
   <datapoint>9</datapoint>
</item>

项目的数量不是固定的数字。我已经在检索最后一个()数据点,但是现在我还需要抓住下一个数据点。因此,在此示例中,我需要单独返回8和9。

with xml something like:

<item > 
   <datapoint>5</datapoint>
</item>
<item > 
   <datapoint>4</datapoint>
</item>
<item > 
   <datapoint>6</datapoint>
</item>
<item > 
   <datapoint>8</datapoint>
</item>
<item > 
   <datapoint>9</datapoint>
</item>

And the number of items is not a fixed number. I am already retrieving the last() data point, however I now also need to grab the next to last data point. So in this example I need to separately return both the 8 and the 9.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

沦落红尘 2025-02-18 20:26:01

此Xquery应该有效:

for $it in $file/item[position()=last() or position()=last()-1]
return $it/datapoint

或者,您也可以使用一个较短的版本:

for $it in $file/item[position()>=last()-1]
return $it/datapoint

输出为:

<datapoint>8</datapoint>
<datapoint>9</datapoint>

This XQuery should work:

for $it in $file/item[position()=last() or position()=last()-1]
return $it/datapoint

Or, you could also use a shorter version:

for $it in $file/item[position()>=last()-1]
return $it/datapoint

Output is:

<datapoint>8</datapoint>
<datapoint>9</datapoint>
櫻之舞 2025-02-18 20:26:01

首先,您的XML应该是良好的。这就是为什么我添加了一个root元素

xml

<root>
    <item>
        <datapoint>5</datapoint>
    </item>
    <item>
        <datapoint>4</datapoint>
    </item>
    <item>
        <datapoint>6</datapoint>
    </item>
    <item>
        <datapoint>8</datapoint>
    </item>
    <item>
        <datapoint>9</datapoint>
    </item>
</root>

xquery

for $x in /root/item[last()-1]/datapoint
return $x

输出

<datapoint>8</datapoint>

First, your XML should be well-formed. That's why I added a root element

XML

<root>
    <item>
        <datapoint>5</datapoint>
    </item>
    <item>
        <datapoint>4</datapoint>
    </item>
    <item>
        <datapoint>6</datapoint>
    </item>
    <item>
        <datapoint>8</datapoint>
    </item>
    <item>
        <datapoint>9</datapoint>
    </item>
</root>

XQuery

for $x in /root/item[last()-1]/datapoint
return $x

Output

<datapoint>8</datapoint>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文