0
入力:2つのxmlファイル。最初のフィールドには関連する値を含むいくつかのフィールドがありますが、ノード全体が実際には空です。このノードのデータは、2番目のXMLファイルに含まれています。XSLは、ノード全体を別のxmlファイルのデータで置き換えます。
出力:2番目に提供されたxmlファイルから取得された欠損値を含む最初のxmlファイル。
方法:XSLファイルを使用して、2番目のxmlの適切なノードから最初のxmlの欠損値を注入するタスクを実行する必要があります。
例:
メインinput.xmlに
<?xml version="1.0" encoding="UTF-16"?>
<root>
<data> a </data>
<values>
<value>1</value>
<value>2</value>
</values>
<objects></objects>
</root>
Source_of_missing_info.xml
<?xml version="1.0" encoding="UTF-16"?>
<root>
<data> a </data>
<values>
<value>1</value>
<value>2</value>
</values>
<objects>
<object>Car</object>
<object>Train</object>
<object>Ship</object>
</objects>
</root>
Merger.xsl - これが必要です。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
<xsl:output method="xml" indent="yes" />
<xsl:template match="/">
<xsl:copy-of select="*"/>
</xsl:template>
<xsl:variable name="lookup" select="document('input_missing.xml')" />
<xsl:template match="objects">
<xsl:copy-of select="$lookup" />
<xsl:value-of select="text()" />
</xsl:template>
</xsl:stylesheet>
予想される出力:
<?xml version="1.0" encoding="UTF-16"?>
<root>
<data> a </data>
<values>
<value>1</value>
<value>2</value>
</values>
<objects>
<object>Car</object>
<object>Train</object>
<object>Ship</object>
</objects>
</root>
が、それは上記のMerger.xslを変更することによって、所望の変換を達成することは可能ですか?ソリューションの鍵は何ですか?
これは動作します! ' 'のおかげで、検索した例でこの構文オプションが見つかりませんでした。 –
teodron