【问题标题】:Talend extract xml for each row每行的 Talend 提取 xml
【发布时间】:2018-04-17 08:47:57
【问题描述】:

在我的数据源中,我有想要提取和复制行的 XML 内容记录:

数据源

id | content 

100 | <?xml version="1.0" encoding="utf-8"?><RepeaterData><Version /><Items><Item><Years>2018</Years><data>110</data></Item><Item><Years >2019</Years><data>200</data></Item></Items></RepeaterData>

我想得到一个像这样的输出:

100 | 2018 | 110

100| 2019 | 200

我可以使用哪个组件?有什么帮助吗?

【问题讨论】:

    标签: xml talend talend-mdm


    【解决方案1】:

    你可以这样做:

    首先,迭代您的行,并为每一行读取 xml 列并使用 tExtractXMLField 从中提取您想要的字段。然后在tMap 中检索tFlowToIterate 设置的当前行的ID。

    结果:

    .---+----+----.
    |  tLogRow_1  |
    |=--+----+---=|
    |id |year|data|
    |=--+----+---=|
    |100|2018|110 |
    |100|2019|200 |
    '---+----+----'
    

    【讨论】:

    • 感谢 iMezouar 的回复,我有一个问题请教:我可以用 tXMLMap 替换 tFixedFlowInput 吗?我之前有一个流程来迭代行,我不知道如何在我的流程之间进行匹配以获取数据和 tFlowIterate
    • 我不确定我是否理解您的问题,但最简单的方法是首先准备您的数据并将其存储在 tHashOutput(具有 ID 和 XML 列)中,然后在第二个子作业执行我在解决方案中的建议,将 tFixedFlowInput_1 替换为读取存储在 tHashOuttut 中的数据的 tHashInput。这样一来,您无需进行很多更改即可使其正常工作。
    • 乐于助人 ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-03
    • 2021-12-01
    • 2017-05-31
    • 1970-01-01
    相关资源
    最近更新 更多