例外 - 使用XStream将复杂的XML转换为Object时,“prolog中不允许使用内容”

时间:2015-10-06 09:33:36

标签: java xml-parsing xstream

我有XML文件,我想将其转换为Object。 XML如下

<Response>
     <result xsi:type="TestResponse">
        <description xsi:type="xsd:string">Hello world</description>
        <name xsi:type="xsd:string">John</name>
        <success xsi:type="xsd:boolean">true</success>
     </result>
  </Response>

我尝试了像

这样的方法
XStream stream = new XStream(new DomDriver());
stream.alias("result", Response.class); 
Response response = (Response) stream.fromXML(xmlStr);

It's throwing exception like :   `Content is not allowed in prolog`

Response.java就像

public class Response{
  private String description;
  private String name;
  private boolean success;

//setter and getter methods
}

2 个答案:

答案 0 :(得分:0)

您的问题很可能是由XML开头的字符引起的。这些不一定是可见的,您可能会遇到字节顺序标记(BOM)。如果您使用不能很好地遵循编码的编辑器(Windows编辑器,记事本或类似工具)打开XML,则可能会发生这种情况。

尝试专门将其重新保存为UTF-8,然后添加

<?xml version="1.0" encoding="UTF-8"?>

在顶部,也许这会为你解决。

答案 1 :(得分:-1)

如果这是完整的xml文件,则缺少标题:

例如:

<?xml version="1.0" encoding="UTF-8"?>