如何使用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();
这样就可以取到值了。