如何对一系列属性执行Xpath循环?

时间:2019-06-20 12:43:44

标签: xml loops xpath tokenize

我正在提取XML文件的一部分。 而且我需要获取Data的三个第三值(分别为1.251.92.92)。

XML文件代码如下:

<logData>
<data>499,498.99,1.25,0,1.45,3.67,11.02,187.66,0.29,116.24,0.01,0.05,0.01,0,886.03,1089.99,1.11,14.67,0.29,1.12,1.11</data>
<data>500.01,500,1.9,0.01,1.42,9.94,11.32,185.7,0.29,116.24,0.01,0.01,0.01,0,795.19,973.48,1.11,14.67,0.29,0.95,1.11</data> 
<data>501.03,501.02,2.92,0.02,1.41,20.46,11.62,184.23,0.29,120,0.01,0.01,0.01,0,796.68,956.25,1.11,14.67,0.29,0.83,1.11</data>
   </logData>

(tokenize(//logData/data,','))[3]返回错误消息”

  

“无法执行XPath操作。一系列不止一项   不允许作为tokenize()的第一个参数。”

由于Xpath自动循环,因此应具有一种语法,该语法允许选择要应用标记化的第一组数据,然后移至下一组,依此类推。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

tokenize()接受输入作为字符串并返回字符串值。 如果您想获取值,则可能必须传递带有索引的xpath

tokenize(//logData/data[1],',')[3] #returns 1.25

tokenize(//logData/data[2],',')[3] #returns 1.9

tokenize(//logData/data[last()],',')[3] #returns 2.92