我在服务脚本上使用 groovy 成员步骤类型来在调用后捕获 XML。
def myXml=evalElement('myGroup/myData').getElementsByTagName('myBody').item(0)
我可以使用记录器按预期查看 myXml 的输出
<?xml version="1.0" encoding="UTF-8"
<myBody>
.....whatever....
</myBody>
脚本模式的结构为
<parm>
<output type="group">
<childList type="list">
<grandChildList type="list">
<node1/>
<node2/>
<rawNode type="raw"/>
</grandChildList
</childList>
</output>
</parm>
我正在使用邮递员通过 IWS 对此进行测试,它返回时没有错误,但无论带有
type="raw"
的节点都没有显示在响应中。
我还尝试记录原始节点(如果它在移动函数之后有内容),并且确实如此。 这就是我使用 move 方法的方法
//these lists have already been used before this line
move(myXml, "parm/output[last()]/childList[last()]/grandChildList[last()]/rawNode")
有什么想法吗?这个myXml没有明确的结构。我尝试移动到具有 dataType 组的节点,但它返回 jsonObject 堆栈溢出异常。
尝试移动到字符串类型,但它说无法移动到非容器字段。
我什至将原始类型节点放在列表之外更简单的位置,但它只是不会在响应中显示。
这不是一个直接的解决方案,而是一种解决方法——我没有选择 type="raw",而是将每个数据区域声明为脚本模式内的组,然后编写逻辑来识别何时使用哪个数据区域。