Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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 如何使用jsoup解析带有前缀的SOAP XML?_Java_Xml_Parsing_Soap_Jsoup - Fatal编程技术网

Java 如何使用jsoup解析带有前缀的SOAP XML?

Java 如何使用jsoup解析带有前缀的SOAP XML?,java,xml,parsing,soap,jsoup,Java,Xml,Parsing,Soap,Jsoup,这是一个示例XML <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'> <env:Header/> <env:Body> <ns0:NotifyRequest xmlns:ns3='http://dummyurl.com'> <PartTotal>10</PartTotal> <PartNo&g

这是一个示例XML

<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
<env:Header/>
<env:Body>
    <ns0:NotifyRequest xmlns:ns3='http://dummyurl.com'>
        <PartTotal>10</PartTotal>
        <PartNo>2</PartNo>
    </ns0:NotifyRequest>
</env:Body>

10
2.

我的服务器接受这些请求,并通过Jsoup解析。我通过标记“ns0:NotifyRequest”获取元素,然后查找子元素

我的问题是;当前缀更改时,我的解析器会失败,因为元素标记“ns0:NotifyRequest”是硬编码的,当收到的XML类似于“ns3:NotifyRequest”时,它会给出一个错误


有没有办法忽略此前缀并获取NotifyRequest元素?我知道我不能直接从一级元素中获取内部元素。(我的意思是我可以使用BodyElement.getElementsByTag(“PartTotal”)而不是NotifyRequestElement.getElementsByTag(“PartTotal”),它们做同样的工作)但我想使用正则表达式或其他东西,忽略随机前缀并获取NotifyRequest元素。

根据使用
的文档。选择(“*| NotifyRequest”)
应该可以工作,但快速测试表明,在与xml解析器结合时可能会出现问题。正如Luk所提到的,JSoup似乎无法处理名称空间的通配符。既然这是XML,您是否研究过Java提供的一些XML解析器?