我必须将节点元素的数据从 file1.xml 复制到 file2.xml。 文件1.xml
<?xml version="1.0" encoding="utf-8" ?>
<root>
<header>
<AsofDate>31-Dec-2012</AsofDate>
<FundName>This is Sample Fund</FundName>
<Description>This is test description</Description>
</header>
</root>
文件2.xml
<?xml version="1.0" encoding="utf-8" ?>
<root id="1">
<header id="2">
<AsofDate id="3"/>
<FundName id="4" />
<Description id="5" />
</header>
</root>
将 file1.xml 合并到 file2.xml 后,结果应如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<root id="1">
<header id="2">
<AsofDate id="3">31-Dec-2012</AsofDate>
<FundName id="4">This is Sample Fund</FundName>
<Description id="5">This is test description</Description>
</header>
</root>
我正在使用下面的 XSLT 来转换文件。
<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
下面是用于执行转换的代码:
XslCompiledTransform tf = new XslCompiledTransform();
tf.Load("TranFile.xsl");
tf.Transform("file1.xml", "file2.xml");
但上面的代码是用 file1.xml 内容覆盖 file2 内容。这只是示例 XML。在实际情况下,我们不知道 xml 文件的节点名称和层次结构。但是文件和场景的任何结构都将完全相同。我是 XSLT 的新手,不确定这种方法是否正确。真的有可能通过 XSLT 实现结果吗?