XSL用另一个xml文件中的数据替换整个节点

时间:2016-04-26 08:56:32

标签: xml xslt xml-parsing

输入:两个xml文件。第一个包含多个包含相关值的字段,但整个节点实际上是空的。此节点的数据包含在第二个xml文件中。

输出:第一个xml文件,其中包含从第二个提供的xml文件中获取的缺失值。

方法论:必须使用XSL文件来执行从第二个xml中的相应节点注入第一个xml中的缺失值的任务。

示例

主input.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>

Source_of_missing_info.xml

<?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>

Merger.xsl - 这是必需的。

<?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>

预期产出:

{{1}}

是否可以通过修改上述Merger.xsl来实现所需的转换?解决方案的关键是什么?

1 个答案:

答案 0 :(得分:2)

为什么不简单:

nan