【发布时间】:2016-03-20 10:52:11
【问题描述】:
我有 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> 下字段的正确计数。但是,我觉得它有点笨拙。需要更好的解决方案。
【问题讨论】:
-
你需要得到什么? (3, 3, 3) 还是 9?
-
我只需要 3 个。不是总数 9 或列表 (3,3,3)
-
我已经编辑了我的答案。在 Scala XPath 中可能再好不过了。