【发布时间】:2018-09-18 07:24:47
【问题描述】:
我想获取一些 XML 文档并在某个级别上合并具有相同属性值的所有节点。例如,如果我有一份这种形式的文件,
<xml>
<books id="X">
<book name="Story"/>
<book name="Tale"/>
</books>
<books id="X">
<book name="Folklore"/>
<book name="Magic"/>
</books>
<books id="Y">
<book name="Harry Potter"/>
<book name="LotR"/>
</books>
</xml>
那么我希望能够将其转换为以下文档:
<xml>
<books id="X">
<book name="Story"/>
<book name="Tale"/>
<book name="Folklore"/>
<book name="Magic"/>
</books>
<books id="Y">
<book name="Harry Potter"/>
<book name="LotR"/>
</books>
</xml>
如果可能的话,我非常希望有多种解决方案。例如,一种使用 XSLT,另一种使用其他语言。
【问题讨论】:
-
您不能使用 XPath 修改 XML 源。您应该改为检查 XSLT。另请注意,不包含解决问题尝试的问题应以太宽泛或偏离主题而关闭
-
这是一个分组问题。如果您使用的是 XSLT 1.0,请继续阅读 Muenchian Grouping。如果您可以使用 XSLT 2.0 或更高版本,那么xsl:for-each-group 将成为您的朋友。如果您无法使其正常工作,请发布您尝试过的内容,我相信您会得到答案。谢谢!
标签: xml xslt xpath data-conversion