【发布时间】:2016-03-06 12:35:11
【问题描述】:
我有以下 XML:
<team>
<name>Sanha</name>
<players>
<player>
<name>Alberto Carreiras</name>
<skill>7</skill>
</player>
<player>
<name>Uông Bửu Đích</name>
<skill>8</skill>
</player>
...
</players>
<sum>0</sum>
</team>
<team>
...
</team>
是否有一种简单直接的方法来计算skill 的总和并将其插入到标签中?达到以下效果:
<team>
<name>Sanha</name>
<players>
<player>... </player>
<player>...</player>
...
</players>
<sum>15</sum>
</team>
我可以使用 XPath 来获得总和:
sum(/team/name["Sanha"]/following-sibling::players/player/skill)
假设我有一个描述这些值的工作 XSD 文件。所有字母都是xsd:string,所有数字都是xsd:float。一切都没有限制。
但是我不知道如何将此值解析为sum 标记。
【问题讨论】:
-
XPath 确实允许您在输入文档中选择节点并根据输入计算值,因此您的 XPath 表达式将计算一个总和,是的。但 XPath 不允许您创建新文档或操作现有文档,添加
sum元素需要 XSLT 或 XQuery 或支持 XPath 的 DOM。 -
感谢您的回答。你能告诉我如何用 XSLT 来做吗?我已经看到它就像 XML 和 HTML 的组合。如何将计算放入标签?
-
那么,为什么
7和87.5之和是?不应该是15吗?