带有xpath和命名空间的ActiveMQ选择器表达式

时间:2015-04-15 07:16:38

标签: xml xpath namespaces activemq

我需要使用带有命名空间和前缀的xpath创建jms消息过滤器选择器。

对于下面的xml消息/有效负载,这个xpath表达式XPATH '//test/one/text()=''oneTest'''对我来说很好。

<test>
   <one>oneTest</one>
   <two>twoTest</two>
</test>

但是如果我的xml消息具有如下所示的名称空间和前缀,我就无法编写xpath表达式。

<es:EnterpriseMessage
xmlns:es="http://schemas.umusic.com/enterprise/services/2014/05">
<es:EnterpriseHeader>
    <es:MessageId>123</es:MessageId>
</es:EnterpriseHeader>

我需要编写带有命名空间的jms过滤器选择器xpath表达式,如果MessageId元素具有&#39; 123&#39;然后只有jms消费者应该处理消息。

有人可以告诉我如何使用带有命名空间的xpath编写AcitveMQ jms选择器表达式?

1 个答案:

答案 0 :(得分:0)

我认为您可以使用local-name()='elementName'来选择其名称空间的元素。 例如:&#39;//*[local-name()=''test'']/*[local-name()=''one'']/text()=''oneTest''&#39;

我希望这可以提供帮助!