当存在匹配的“id”属性时,我想使用 XSLT 合并 2 个 XML 文件。
myFile1.xml(这是第一个输入文件)
<?xml version="1.0" encoding="ISO-8859-1"?>
<test>
<node>
<type id="a">
<name>joe</name>
<name>kill</name>
</type>
</node>
<node>
<type id="b">
<name>sam</name>
</type>
</node>
</test>
myFile2.xml(这是第二个输入文件)
<?xml version="1.0" encoding="ISO-8859-1"?>
<test>
<node>
<type id="a">
<name>jill</name>
<name>kill</name>
</type>
</node>
</test>
mergeOutput.xml(这是 id 匹配且合并 2 个文件的预期输出)
<?xml version="1.0" encoding="ISO-8859-1"?>
<test>
<node>
<type id="a">
<name>joe</name>
<name>jill</name>
<name>Kill</name>
</type>
</node>
<node>
<type id="b">
<name>sam</name>
</type>
</node>
</test>
任何 XSLT 代码或代码链接都会有所帮助。我没有 XSLT 知识,也没有使用此合并来使事情正常运行。
XSLT 2.0解决方案:
<xsl:template name="main">
<test>
<node>
<xsl:for-each-group select="(doc('myFile1.xml'), doc('myFile2.xml'))/test/node/type"
group-by="@id">
<type id="{@id}">
<xsl:copy-of select="current-group()/*"/>
</type>
</xsl:for-each-group>
</node>
</test>
</xsl:template>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)