【问题标题】:talend convert rows to columnstalend 将行转换为列
【发布时间】:2020-11-17 08:49:21
【问题描述】:

我需要从 xml 文件中读取字段。

XML 就像:

<fieldlist>
<field name "foo" value="1"/>
<field name "bar" value="2"/>
<field name "baz" value="3"/>
<field name "empty" value=""/>
</fieldlist>

使用 FileInputXML 和 tXML_Map 我已经可以过滤掉空值了。

但现在我需要在单个操作中按名称列出所有值。

我怎样才能得到这些?我需要它
|foo|bar|baz|
|1|2|3|

或者变量 foo=1, bar=2, baz=3

【问题讨论】:

    标签: xml talend


    【解决方案1】:

    使用 xslt 组件解决了这个问题

    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" omit-xml-declaration="yes" />
    <xsl:template match="/">
    <xsl:text disable-output-escaping="yes">&lt;Values&gt;</xsl:text>
    <xsl:text>&#10;</xsl:text>
        <xsl:for-each select="fieldlist">
             <xsl:text disable-output-escaping="yes">&lt;</xsl:text><xsl:value-of select="@Name"/><xsl:text disable-output-escaping="yes">&gt;</xsl:text>
             <xsl:value-of select="@Value"/>
             <xsl:text disable-output-escaping="yes">&lt;/</xsl:text><xsl:value-of select="@Name"/><xsl:text disable-output-escaping="yes">&gt;</xsl:text>
            <xsl:text>&#10;</xsl:text>
        </xsl:for-each>
    <xsl:text disable-output-escaping="yes">&lt;/Values&gt;</xsl:text>
    </xsl:template>
    </xsl:stylesheet>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-01
      • 2015-04-25
      • 2016-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多