[英]wso2 - get value from xml with property
我需要从xml中提取值并将其存储在属性中。
这是我的xml:
<?xml version="1.0" encoding="UTF-8"?>
<localEntry xmlns="http://ws.apache.org/ns/synapse" key="myVersion2">1</localEntry>
我在互联网上发现了类似的东西:
<property name="myProp"
expression="get-property('registry','conf:repository/myVersion2.xml')"
scope="default"
type="OM"/>
<log level="custom">
<property name="myVersion2.localEntry" expression="$ctx:myVersion2//localEntry"/>
</log>
但不起作用..
我有这个错误:
TID: [0] [ESB] [2015-07-03 16:27:43,495] ERROR {org.apache.axis2.transport.base.threads.NativeWorkerPool} - Uncaught exception {org.apache.axis2.transport.base.threads.NativeWorkerPool}
org.apache.axiom.om.OMException: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1]
Message: Premature end of file.
at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:296)
我需要的是获取值并将其放在属性中。
有人可以帮我吗?
谢谢
C
请按以下方式更改您的配置。
<log level="custom">
<property name="myProp.localEntry" expression="$myProp//localEntry"/>
</log>
请尝试一下,让我们知道是否可以解决您的问题。
上面的示例基本上是从配置注册表中获取数据(如果已存在)。 但是您问过,如何设置属性值。 我希望XML将已经在您的消息上下文中。...所以只需遍历xpath并在如下所示的属性中介器中设置值即可。
<property name="myProp"
expression="\\some_element\....\localEntry"
scope="default"
type="String"/>
那么您可以使用get-property()方法轻松引用此“ myProp”以从中获取值。
我已解决问题!
有用!
<property name="getSequence" expression="get-property('registry','conf:repository/myVersion2.xml')" scope="default" type="OM"/>
<log level="custom">
<property name="TestVersion" expression="$ctx:getSequence//localEntry"/>
</log>
这是输出日志:
TID: [0] [ESB] [2015-07-07 18:04:44,251] INFO {org.apache.synapse.mediators.builtin.LogMediator} - TestVersion = 1 {org.apache.synapse.mediators.builtin.LogMediator}
谢谢大家的帮助!
最好的问候克劳迪奥
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.