使用多个标头Talend解析xml

时间:2018-04-25 22:27:58

标签: talend talend-mdm

我正在尝试读取收到的有多个标题的xml数据

示例:

<?xml version="1.0" encoding="utf-8"?>                         
 <RepeaterData>
<Version />
<Items>
    <Item>
        <year>2017</year>
        <Additional>
            <?xml version="1.0" encoding="utf-8"?>
            <RepeaterData>
                <Version />
                <Items>
                        <Name>toto</Nom>
                </Items>
            </RepeaterData>
        </AdditionalCharge>
    </Item>
    <Item>
        <year>2018</year>
        <Additional >
            <?xml version="1.0" encoding="utf-8"?>
            <RepeaterData>
                <Version />
                <Items>
                    <Item>
                        <element type="System.String">3</Sousdept>
                        <Name type="System.String">toto</Nom>
                        </Item>
                    <Item>
                        <element type="System.String">3</Sousdept>
                        <Name type="System.String">tata</Nom>
                        </Item>
                </Items>
            </RepeaterData>
        </Additional>
    </Item>
</Items>

我还试图用StringHandling.EREPLACE ( b ,"<?xml version=1.0 encoding=utf-8?>","");删除xml标题,但它无法正常工作

请帮助!!!!

1 个答案:

答案 0 :(得分:1)

这是一个快速而肮脏的解决方案。使用tReplace从输入中删除所有xml标头,并将结果写入已编写xml标头的文件(因为您的第1个标头已被删除)。

enter image description here

tFileInputFullRow_1将是您的tRestClient

tFileInputDelimited_2包含tFixedFlowInput_1编写的xml标头。

tFileOutputDelimited_1tFileOutputDelimited_2模式下将Append写入同一文件。

然后,您可以读取生成的xml文件。