我需要使用带有命名空间和前缀的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选择器表达式?
答案 0 :(得分:0)
我认为您可以使用local-name()='elementName'来选择其名称空间的元素。
例如:'//*[local-name()=''test'']/*[local-name()=''one'']/text()=''oneTest'''
我希望这可以提供帮助!