使用last函数的XPath谓词

时间:2016-04-27 16:16:01

标签: xml xpath

我正在寻找XPath 1.0声明。我不能使用XSLT。

XML示例

NSString

我需要提取保留xml结构的最后数据内容。结果应如下所示

<root>
  <data>
    <okay>Hello</okay>
  </data>
  <data>
    <okay>World</okay>
  </data>
</root>

不幸的是,我无法搜索<root> <data> <okay>World</okay> </data> </root> 元素中的值,因为它是动态的。

我尝试了以下内容,但它会返回所有内容:

okay

2 个答案:

答案 0 :(得分:1)

XPath用于选择 ,但您搜索的输出不是可以从XML文档中选择的。

XSLT用于转换 ,这就是您生成纯粹通过选择无法生成的结果所需要的。

如果您愿意放弃结果中的root元素,

<data>
  <okay>World</okay>
</data>

以下XPath将选择目标data元素:

 /root/data[last()]

答案 1 :(得分:0)

XSLT getting last element

基于这个例子,它将是:

(//root/data/okay)[last()]

括号排序将它们列出,方括号允许您根据从1开始的索引来说明您想要的列表中的哪个元素。在您的示例中,索引将为2,但您不会想要硬编码任何动态的东西。

(//root/data/okay)[2]

我也不确定你的意思是什么&#34;好的&#34;元素是动态的,它总是有相同的标签吗?或者你指的是数据变化?

如果标签不同,您可以执行以下操作:

(//root/data/*)[last()]