【发布时间】:2013-10-31 15:55:59
【问题描述】:
我正在尝试计算 XML 文档中的所有父节点。我见过像.SelectNodes("general/parent").Count 这样的解决方案,但这是一个固定的解决方案。问题是我必须使用生成的 XML 文档来完成。所以我不知道 XML 结构。
我创建了一个示例。想象一下,在根本不知道任何标签名称或信息的情况下,生成了以下文档:
<?xml version="1.0" encoding="UTF-8"?>
<general>
<settings>
<resolution>1920x1080</resolution>
<version>1.0</version>
</settings>
<data>
<persons>
<person>
<name>Bob</name>
<age>41</age>
</person>
<person>
<name>Alex</name>
<age>25</age>
</person>
</persons>
</data>
</general>
我想浏览此文档并得到以下结果: 5. 由于该文档有 5 个“父级”(常规、设置、数据、人员和人员)。但它不包括“分辨率”、“版本”、“名称”和“年龄”,因为它们没有孩子(没有父母)。但再一次记住,文档是生成的!
我希望这个问题足够清楚。有没有办法做到这一点?
【问题讨论】:
-
通常我会说使用 "//*[count(*)>0]",但你必须在循环中处理 distinct。 (即 Person 出现两次,因为他们都是父母)