Scala:获取 XML 中的子节点数

Scala: get child nodes count in XML

我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") returns NodeSeq

尝试(XML \ "c" \ "_").length给出所有记录的总长度。不确定如何访问子节点。有什么想法吗?

编辑: (XML \ "c" \ "_").length / (XML \ "c").length 这给出了 <c> 下字段的正确计数。但是,我觉得它有点笨拙。需要更好的解决方案。

(XML \ "c" \ "_").length 给出 9(所有 "c" children 的计数)

((XML \ "c")(0) \ "_").length 给出 3(第一个 "c" children 的计数)