繁体   English   中英

wso2-使用属性从xml获取值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM