Xquery查找倒数第二项



与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。

这个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>

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

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>

相关内容

  • 没有找到相关文章

最新更新