【发布时间】:2023-04-02 13:44:01
【问题描述】:
你能帮我解析带有嵌套<?xml version="1.0" encoding="utf-8"?>标签的xml吗?当我试图解析这个 xml 时,我得到了解析错误。
<?xml version="1.0" encoding="utf-8"?>
<soap>
<soapenvBody>
<serviceResponse>
<?xml version="1.0" encoding="UTF-8"?>
<data>
<respCode>0</respCode>
</data>
</serviceResponse>
</soapenvBody>
</soap>
【问题讨论】:
-
没有简单的方法来解析它,因为它不是有效的 xml。但是看到这是一个肥皂响应,这让我想知道是什么服务给你的,看看他们是否可以修复服务会更好(或者如果你有访问权限,你是否可以修复服务?)。
-
您可以尝试对流进行预处理,删除无效部分(例如使用正则表达式替换),然后使用常规 XML 解析器对其进行解析。我还认为您可以使用 SAX 解析器对其进行解析。
-
我已经从soap响应中看到过几次 - 即响应中的响应 - 如果您可以在解析之前对您的响应进行html编码,使其变为
&lt;serviceResponse&gt;等前进的道路。 -
您没有尝试使用嵌套的 XML 声明解析 XML,因为 XML 不能包含嵌套的 XML 声明。相反,您正在尝试解析非 XML 输入。因此,您将需要一个非 XML 解析器。最好说服这些文件的供应商生成格式正确的 XML。
标签: java xml xml-parsing