Scala:使用XML计算子节点数

时间:2015-12-14 20:17:44

标签: xml scala children

我的格式为

的XML
val XML = 
<a>
 <b>value_b</b>
 <c>
   <c_1>value_c_1</c_1>
   <c_2>value_c_2</c_2>
   <c_3>value_c_3</c_3>
 </c>
 <b>value_b</b>
 <c>
   <c_1>value_c_1</c_1>
   <c_2>value_c_2</c_2>
   <c_3>value_c_3</c_3>
 </c>
 <b>value_b</b>
 <c>
   <c_1>value_c_1</c_1>
   <c_2>value_c_2</c_2>
   <c_3>value_c_3</c_3>
 </c>
</a>

我想得到<c>下孩子的统计数字 我试过了        (XML \\ "c").length

但这会计算所有<c>代码的计数。由于descendant返回(XML \\ "c")

,我无法访问NodeSeq

尝试(XML \\ "c" \\ "_").length可获得所有记录的总长度。不知道我如何访问子节点。有什么想法吗?

修改 (XML \\ "c" \ "_").length / (XML \\ "c").length这会在<c>下提供正确的字段数。但是,我觉得它有点笨拙。需要一个更好的解决方案。

1 个答案:

答案 0 :(得分:4)

(XML \\ "c" \ "_").length给出9(所有“c”子女的数量)

((XML \ "c")(0) \ "_").length给出3(第一个“c”个孩子的数量)