天天看点

kettle js脚本里添加xml数据

如何使用kettle的js脚本创建xml数据

项目上遇到需求需要在kettle手动生成一段下xml数据,想到可以使用kettle中的js脚本组件去生成,但是如果使用字符串拼接的方法生成xml会非常麻烦,这里分享一个简单的方法:

首先 var request = new XML();

然后就可以之间给request赋值xml的内容了。

var request = new XML();

request=<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:sap-com:document:sap:soap:functions:mc-style">
   <soapenv:Header/>
   <soapenv:Body>
      <urn:ZrfcGetBwdata>       
         <!--Optional:-->
         <ItFields>
            <!--Zero or more repetitions:-->       
         </ItFields>
         <!--Optional:-->
         <ItOptions>
            <!--Zero or more repetitions:-->
            <item>
               <Text></Text>
            </item>
         </ItOptions>
      </urn:ZrfcGetBwdata>
   </soapenv:Body>
</soapenv:Envelope>;

var requsetXml=request.toXMLString();
           

那如果这个xml的内容需要从前一个步骤取值该怎么做呢,可以使用{变量名}获取。

如:

var request = new XML();

request=<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:sap-com:document:sap:soap:functions:mc-style">
   <soapenv:Header/>
   <soapenv:Body>
      <urn:ZrfcGetBwdata>       
         <!--Optional:-->
         <ItFields>
            <!--Zero or more repetitions:-->       
         </ItFields>
         <!--Optional:-->
         <ItOptions>
            <!--Zero or more repetitions:-->
            <item>
               <Text>{where}</Text>
            </item>
         </ItOptions>
      </urn:ZrfcGetBwdata>
   </soapenv:Body>
</soapenv:Envelope>;

var requsetXml=request.toXMLString();
           
kettle js脚本里添加xml数据

这样就可以取到值了。

ETL