我正在尝试使用Mule中的常规脚本转换器替换节点的文本值。
我首先使用XML到DOM转换器,然后使用以下内容
<scripting:transformer name="replacePassword">
<scripting:script engine="Groovy"><![CDATA[import org.dom4j.*
import groovy.xml.DOMBuilder
import groovy.xml.dom.DOMCategory
Node passwordElement = message.payload.getRootElement().selectSingleNode("//*[local-name()=\'Password\']")
passwordElement.setTextContent("xxxxxxxxxxxxx")
return message.payload
]]></scripting:script>
</scripting:transformer>
但这似乎引发了以下异常
根异常堆栈跟踪:groovy.lang.MissingMethodException:否 方法的签名:org.dom4j.tree.DefaultElement.setTextContent()为 适用于参数类型:(java.lan g.String)值: [xxxxxxxxxxxxx]
我对groovy不太熟悉,我的脚本正确吗?
谢谢
答案 0 :(得分:1)
只需查看org.dom4j.tree.DefaultElement的文档
没有setTextContent()
方法...但是有setText()
方法
答案 1 :(得分:0)
最后,将得到一个节点并替换文本值
<scripting:transformer name="replacePassword">
<scripting:script engine="Groovy"><![CDATA[
node = message.payload.getRootElement().selectSingleNode('//*[local-name()=\'Password\'][1]');
node.text = 'xxxxxxx';
return message.payload;]]></scripting:script>
</scripting:transformer>