我正在尝试设置此表达式以获得输出文件名作为城市名称和文件扩展名之间的连接:
<?xml version="1.0" encoding="UTF-8"?>
<sequence name="WriteFile_City" xmlns="http://ws.apache.org/ns/synapse">
<property expression="concat(json-eval($.city.name),'.xml')"
name="transport.vfs.ReplyFileName" scope="transport"
type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/>
<property name="OUT_ONLY" value="true"/>
<send>
<endpoint>
<address uri="vfs:file:///C:/myFolder"/>
</endpoint>
</send>
</sequence>
如果我只尝试插入城市名称,它会起作用:第三行将是
<property expression="json-eval($.city.name)"
并以这种方式将我的输出保存在一个名为“London”的文件中,例如。但是我需要将输出保存为“London.xml”,但我不明白这个 concat 函数的问题在哪里。
最佳答案
您是否尝试过 fn:concat(json-eval($.city.name),'.xml') 而不是简单地 concat(....) ? 我知道在使用带有某些表达式的函数时我已经添加了问题。我通常也尝试先声明一个属性,然后像这样使用它
<property expression="json-eval($.city.name)" name="city"/>
<property expression="concat(get-property('city'),'.xml')"
name="transport.vfs.ReplyFileName" scope="transport"
type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/>
关于xml - 无法使用 json-eval 在 WSO2 ESB 配置中应用 concat 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41631258/