ノード要素のデータをfile1.xmlからfile2.xmlにコピーする必要があります。 file1.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>
file2.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");
ただし、上記のコードはfile2のコンテンツをfile1.xmlのコンテンツで上書きしています。これは単なるサンプルXMLです。実際には、ノードの名前とxmlファイルの階層はわかりません。ただし、ファイルとシナリオの両方で構造が同じになる場合は、まったく同じになります。私はXSLTを初めて使用しますが、結果を達成するためのこの正しいアプローチがあるかどうかはわかりません。XSLTを介して結果を達成することは本当に可能ですか。