Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
存在默认命名空间问题的Java XPath_Xpath - Fatal编程技术网

存在默认命名空间问题的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";