java - XML 解析错误

标签 java xml soap zimbra

我遇到以下错误,请帮助 “解析错误:

Error on line 1 of document  : 
The markup in the document preceding the root element must be well-formed. 
Nested exception: The markup in the document preceding the root element must be well-formed.

XML 如下

<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<'env:Envelope' xmlns>:env=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:ns1=\"urn:zimbraAdmin\">    
xmlns:ns2=\"urn:zimbraAdmin\"><env:Header><ns2:context/></env:Header><env:Body>    
<ModifyAccountRequest xmlns=\"urn:zimbraAdmin\"><id>4d41ec71-d898-42b8-b522-3c3cdc5583a0</id>
<a n=\"zimbraIsAdminAccount\">TRUE</a>
</ModifyAccountRequest></env:Body></env:Envelope>

最佳答案

这是非常畸形的。问题突出如下:

1. \" 的每个实例应替换为简单的 "因为斜杠表示 Java 的文字字符,并且在普通 XML 中不需要。

2. <'env:Envelope' 周围不应有单引号。老实说,我不知道它们来自哪里。

3. 收盘克拉为 xmlns>:env=应该被删除,物理行 xmlns:ns1=\"urn:zimbraAdmin\"> 末尾的那个也应该被删除。 。删除该克拉会将下一个 namespace 语句(看起来与 ns1 不必要地相同)带入信封标记中。

我不知道是什么导致信封变得如此畸形,但您应该仔细阅读您使用 xmlns 设置的值和变量的用途。和命名空间引用,以便下次您至少了解 XML 请求的所有部分的作用。这将帮助您将来对自己的文档进行故障排除。

与此同时,由于您似乎完全不知所措,因此这里是已更正上述错误的 XML。

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="urn:zimbraAdmin" xmlns:ns2="urn:zimbraAdmin">
<env:Header>
    <ns2:context/>
</env:Header>
<env:Body>
    <ModifyAccountRequest xmlns="urn:zimbraAdmin">
        <id>4d41ec71-d898-42b8-b522-3c3cdc5583a0</id>
        <a n="zimbraIsAdminAccount">TRUE</a>
    </ModifyAccountRequest>
</env:Body>
</env:Envelope>

关于java - XML 解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25094517/

相关文章:

java - 运行第一个 JCStress 测试

xml - 未使用 tomcat 和 opendap thredds 服务器更新文件

c# - 这是解析 XML 的低效方法吗?

rest - 将 XML 转换为 http URI 模板

c# - HTTP 请求未经客户端身份验证方案 'Anonymous' 授权。从服务器收到的身份验证 header 是“基本”

java - 如何更新选项卡中的 ListView ?

java - 缺少 Artifact net.sourceforge.jdpapi :jdpapi-java:jar:1. 0.1

java - SPRING 3 MVC - MySQL JDBC 数据库连接配置

java - 撒克逊 API : Modifying XML document

soap - CXF:在同一个soap上实现多个端口:地址?