我从数据库中检索XPath(通过DSS),并且需要将其应用于主体。这可能吗?
举个例子,假设我有这个xml请求
<custom>
<id>24</id>
<text>Some Text</text>
<firstOccurId>123456</firstOccurId>
<secondOccurId>654321</secondOccurId>
</custom>
我拿着ID(24)和呼叫模板,它将返回
<replacements>
<row>
<value>ABCDEFG</value>
<xpath>/*/custom/firstOccurId</xpath>
</row>
<row>
<value>GFEDCDBA</value>
<xpath>/*/custom/secondOccurId</xpath>
</row>
</replacements>
现在我需要将xpath应用于请求并更改其值,因此转换后的请求主体看起来像这样
<custom>
<id>24</id>
<text>Some Text</text>
<firstOccurId>ABCDEFG</firstOccurId>
<secondOccurId>GFEDCDBA</secondOccurId>
</custom>
我尝试了两个validate()并将XPath字符串放在“呼叫模板”调解器的{{}}中,但是都没有成功。
答案 0 :(得分:0)
evaluate()
是正确的答案。更具体地说,在此示例中,我需要将custom
请求存储在属性中,获取replacements
,遍历它们,在此循环中,我需要在属性中将完整的xpath存储为fn:concat('$body', //el:row/el:xpath, '/text()')
,使用原始有效负载丰富主体,并将存储的xpath应用于evaluate()