我正在创建一个代理,我在其中创建一个属性,该属性使用x-path表达式从请求主体获取数据。我写的财产是:
<property xmlns:xs="http://www.openoandm.org/xml/ISBM/" name="ChannelURI" expression="//xs:ChannelURI" scope="default" type="STRING"/>
现在我调用了一个类调解器,我传递了这个属性的值。所以在我的班级调解员中,我写了
public String channelUriFromProp = String.valueOf(context.getProperty("ChannelURI"));
所以现在如果我将任何字符串值传递给ChannelURI属性,我可以在我的类中介字符串channelUriFromProp中获取该值。
但真正的问题是,当我从请求中传递空值时
<body>
<p:OpenPublicationSession xmlns:p="http://www.openoandm.org/xml/ISBM/">
<!--Exactly 1 occurrence-->
<xs:ChannelURI xmlns:xs="http://www.openoandm.org/xml/ISBM/"></xs:ChannelURI>
</p:OpenPublicationSession>
</body>
然后当我在类中介代码中打印channelUriFromProp的值时,我得到
<xs:ChannelURI xmlns:xs="http://www.openoandm.org/xml/ISBM/"/>
而不是null或空。我在这里做错了吗? 提前谢谢。
答案 0 :(得分:0)
您的xpath是错误的,它应该是这样的..
<property xmlns:xs="http://www.openoandm.org/xml/ISBM/" xmlns:p="XXXXXXXXX" name="ChannelURI" expression="//p:OpenPublicationSession/xs:ChannelURI"