Wso2 XML在脚本中介中消失

Wso2 XML在脚本中介中消失,wso2,wso2esb,Wso2,Wso2esb,我想向使用API代理WSO2 DSS的XML请求添加一个新的子节点 我收到的请求格式如下: <contacts> <firstName>Bob</firstName> <lastName>Brown</lastName> </contacts> 上下快速移动 棕色的 我需要向这个请求添加一个“id”节点,我可以从URI变量中检索该节点 <contacts> <id>1</id&

我想向使用API代理WSO2 DSS的XML请求添加一个新的子节点

我收到的请求格式如下:

<contacts>
  <firstName>Bob</firstName>
  <lastName>Brown</lastName>
</contacts>

上下快速移动
棕色的
我需要向这个请求添加一个“id”节点,我可以从URI变量中检索该节点

<contacts>
  <id>1</id>
  <firstName>Bob</firstName>
  <lastName>Brown</firstName>
</contacts>

1.
上下快速移动
棕色的
我尝试过使用“enrich”中介,但这似乎只是将ID节点环绕在名字和姓氏节点周围

所以我求助于使用脚本中介来修改请求。这就是我想做的:

//Get XML Request from message context    
var request= mc.getPayloadXML();

//Create a child node using standard E4X notation
var child = <id>1</id>;

//Append this XML to the request
request.appendChild(child);

//Replace the payload
mc.setPayloadXML(request);
//从消息上下文获取XML请求
var request=mc.getPayloadXML();
//使用标准E4X表示法创建子节点
var-child=1;
//将此XML追加到请求
请求。追加儿童(child);
//更换有效载荷
mc.setPayloadXML(请求);
每次我尝试提交这段代码时,WSO2 ESB API UI都会说一切都很酷。但当我检查底层XML配置时,它并不酷。我定义的“id”节点现在只是空的,好像它是在我不知情的情况下被过滤的


如果我可以使用脚本中介添加此元素,那就太好了,但我愿意接受其他解决方案。

这实际上是一个非常简单的解决方案。只需使用CDATA部分让XML解析器忽略您的代码

<![CDATA[ //YOUR CODE WITH XML INLINE// ]]>

请注意,由于某些原因,WSO2 ESB XML编辑器和UI将在下次打开序列进行编辑时删除CDATA部分。我通常只是将XML配置复制到一个文本文件中,并在需要更新时将其粘贴回配置中

这不是一个完美的解决方案,但它会让你克服困难