如何使用smooks groovy将子元素附加到元素
我试图使用Groovy将Child附加到元素中。到目前为止,我还不能这样做 示例输入文件 Smooks配置文件如何使用smooks groovy将子元素附加到元素,groovy,smooks,Groovy,Smooks,我试图使用Groovy将Child附加到元素中。到目前为止,我还不能这样做 示例输入文件 Smooks配置文件 请清理你的行李request@govardhan-kamle说,在groovy控制台中发布可执行的代码会很有帮助。我很想帮忙,但我不使用Smook。坦率地说,我实在不值得花时间去弄清楚如何启动和运行Smook。但是我可以对可执行代码进行疑难解答:如果您精简了此处使用的示例消息,并显示了您尝试生成的标记类型以及使用groovy的原因,会更清楚吗?例如,作为转换的一部分,您是否需要执行某种
请清理你的行李request@govardhan-kamle说,在groovy控制台中发布可执行的代码会很有帮助。我很想帮忙,但我不使用Smook。坦率地说,我实在不值得花时间去弄清楚如何启动和运行Smook。但是我可以对可执行代码进行疑难解答:如果您精简了此处使用的示例消息,并显示了您尝试生成的标记类型以及使用groovy的原因,会更清楚吗?例如,作为转换的一部分,您是否需要执行某种计算,这里有一个使用groovy的smooks脚本示例:是的,我知道了。谢谢
<?xml version="1.0"?>
<orders>
<order res="0">
<header>
<date>Wed Nov 27 13:45:28 EST 2013</date>
<customer number="9404089839">Harish Nanda M</customer>
</header>
<orderitems>
<orderitem>
<product>007</product>
<quantity>7</quantity>
<price>7.90</price>
</orderitem>
<orderitem>
<product>005</product>
<quantity>3</quantity>
<price>7.20</price>
</orderitem>
</orderitems>
</order>
<order res="0">
<header>
<date>Wed Nov 27 13:45:28 EST 2013</date>
<customer number="2036139296">Sandesh G</customer>
</header>
<orderitems>
<orderitem>
<product>0023</product>
<quantity>87</quantity>
<price>57.90</price>
</orderitem>
<orderitem>
<product>005</product>
<quantity>3</quantity>
<price>7.20</price>
</orderitem>
</orderitems>
</order>
</orders>
<?xml version="1.0"?>
<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd" xmlns:core="http://www.milyn.org/xsd/smooks/smooks-core-1.3.xsd" xmlns:g="http://www.milyn.org/xsd/smooks/groovy-1.1.xsd">
<core:filterSettings type="SAX"/>
<g:groovy executeOnElement="order">
<g:imports>
import org.milyn.xml.DomUtils;
import org.milyn.javabean.context.BeanContext;
import org.milyn.javabean.repository.BeanRepository;
import org.w3c.dom.*;
import groovy.xml.dom.DOMCategory;
import groovy.xml.dom.DOMUtil;
import groovy.xml.DOMBuilder;
import groovy.util.XmlSlurper;
</g:imports>
<g:script>
<!-- javax.xml.transform.dom.DOMSource source = new javax.xml.transform.dom.DOMSource(element);
javax.xml.transform.Transformer transformer = javax.xml.transform.TransformerFactory.newInstance().newTransformer();
javax.xml.transform.stream.StreamResult result = new
javax.xml.transform.stream.StreamResult(new java.io.StringWriter());
transformer.transform(source, result); String ss =
result.getWriter().toString(); def ord = new
XmlSlurper().parseText(ss) //ord.xxxx = "2222"; println
ord.orderitems.orderitem.product.text()*.toInteger().sum();
element.appendChild("res"); //element['@res'] = element.'@res'.toInteger() +
ord.orderitems.orderitem.product.text()*.toInteger().sum();
writeFragment(element);
-->
</g:script>
</g:groovy>
</smooks-resource-list>