存在默认命名空间问题的Java XPath
我无法为表达式准备节点存在默认命名空间问题的Java XPath,xpath,Xpath,我无法为表达式准备节点 <ns:Msg xmlns:ns="http://www.noventus.se/epix1" xmlns="http:www.defaultnamespace.com"> <ns:Header> <SubsysId>1</SubsysId> <SubsysType>30003</SubsysType> <Send
<ns:Msg xmlns:ns="http://www.noventus.se/epix1" xmlns="http:www.defaultnamespace.com">
<ns:Header>
<SubsysId>1</SubsysId>
<SubsysType>30003</SubsysType>
<SendDateTime>2009-08-13T14:28:15</SendDateTime>
</ns:Header>
</ns:Msg>
String expression = "/ns:Msg/ns:Header/SubsysId";
像这样添加这些名称空间
xpath.setNamespaceContext(new SimpleNamespaceContext(namespaces));
这是我的表情
<ns:Msg xmlns:ns="http://www.noventus.se/epix1" xmlns="http:www.defaultnamespace.com">
<ns:Header>
<SubsysId>1</SubsysId>
<SubsysType>30003</SubsysType>
<SendDateTime>2009-08-13T14:28:15</SendDateTime>
</ns:Header>
</ns:Msg>
String expression = "/ns:Msg/ns:Header/SubsysId";
我尝试了多个选项,但无法获得值
注意:如果我删除默认名称空间并运行,那么我将获得该值
非常感谢您的帮助。因为您定义了
namespace.put(“main”,“http:www.defaultnamespace.com”)代码>
然后需要在xpath中指定它
因此,您的xpath变成:
String expression = "/ns:Msg/ns:Header/main:SubsysId";