Pentaho数据集成:将两个xml文件合并为一个

时间:2016-05-24 10:40:34

标签: xml xslt-1.0 pentaho

如何将两个xml文件合并为一个Pentaho数据集成? 以下是我的2个xml文件:

XML文件1:

<Root>
    <OLD>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
     </OLD>
     <OLD>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
     </OLD>
<Root>

Xml文件2:

<Root>
    <NEW>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
     </NEW>
    <NEW>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
     </NEW>
<Root>

两个文件都有相同的节点。 预期的输出文件:

<Root>
    <OLD>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
     </OLD>
    <OLD>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
     </OLD>
     <NEW>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
     </NEW>
    <NEW>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
            <Node> </Node>
     </NEW>
<Root>

1 个答案:

答案 0 :(得分:0)

问题2:

XML文件。

<roots>
    <root>
    <text1>increased by</text1>
    <value1>10</value1>
    <text2>decreased by<text2>
    <value2>-7</value2>
    </root>
</roots>

预期的HTML输出:

increased by 10 --(value 10 in green color)
decreased by -7 -- (value -7 in red color)

我尝试以下方式实现XSLT ......

<xsl:template match="value1">
<xsl:if test="value1 >= 0">
     <font color="green"><xsl:apply-templates/>/></font>
</xsl:if>
</xsl:template>

<xsl:template match="value1">
<xsl:if test="value1 < 0">
     <font color="red"><xsl:apply-templates/>/></font>
</xsl:if>
</xsl:template>