我有一个XML文件,必须将其转换为另一个XML文件。 我不知道我应该做什么来只选择每个节点到第二个文件 (包含此节点包含的所有内容!)
< aaa> ......< / aaa>
< bbb> ......< / bbb>
< ccc> ......< / ccc>
< aaa> ......< / aaa>
< bbb> ......< / bbb>`
等等。 我只想复制第一个< aaa>,< bbb>。 我在XML文件中写了什么sholud?
答案 0 :(得分:0)
基本上,这是一个分组问题。按项目名称对项目进行分组,并复制每个组中的第一项。
给出一个格式良好的输入,例如:
<强> XML 强>
<root>
<aaa>aaa1</aaa>
<bbb>bbb1</bbb>
<ccc>ccc1</ccc>
<aaa>aaa2</aaa>
<bbb>bbb2</bbb>`
<ccc>ccc3</ccc>
<aaa>aaa3</aaa>
<bbb>bbb3</bbb>`
</root>
以下样式表:
XSLT 2.0
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/root">
<xsl:copy>
<xsl:for-each-group select="*" group-by="name()">
<!-- Within the sequence constructor contained in the xsl:for-each-group element, the context item is the initial item of the relevant group. -->
<xsl:copy-of select="."/>
</xsl:for-each-group>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
将返回:
<强>结果强>
<?xml version="1.0" encoding="UTF-8"?>
<root>
<aaa>aaa1</aaa>
<bbb>bbb1</bbb>
<ccc>ccc1</ccc>
</root>