700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > org.dom4j.DocumentException: Error on line 1 of document : 前言中不允许有内容。

org.dom4j.DocumentException: Error on line 1 of document : 前言中不允许有内容。

时间:2019-01-11 05:00:03

相关推荐

org.dom4j.DocumentException: Error on line 1 of document : 前言中不允许有内容。

目录

1.错误信息

2.错误原因

3.bug复现

4.解决方案

1.错误信息

org.dom4j.DocumentException: Error on line 1 of document : 前言中不允许有内容。 Nested exception: 前言中不允许有内容。

org.dom4j.DocumentException: Error on line 1 of document : Content is not allowed in prolog. Nested exception: Content is not allowed in prolog. at org.dom4j.io.SAXReader.read(SAXReader.java:482)

at org.dom4j.DocumentHelper.parseText(DocumentHelper.java:278)

2.错误原因

string转document的时候没有报文头,就是下面这玩意。

<?xmlversion="1.0"encoding="UTF-8"?>

3.bug复现

有一个对象需要转成document格式,我就这样直接转了,但这样直接转没有报文头,然后就有了上面的报错信息。

String xml = JSONUtil.toJsonStr(Object)Document document =DocumentHelper.parseText(xml);

4.解决方案

网上找了一个工具类,这个工具类可以将object转成string并加上请求头,然后就解决了。

String xml = Java2XmlUtil.javaBeanToXml(object);Document document =DocumentHelper.parseText(xml);

Java2XmlUtil

import com.fasterxml.jackson.dataformat.xml.XmlMapper;import lombok.extern.slf4j.Slf4j;import java.util.Objects;@Slf4jpublic class Java2XmlUtil {//XML文件头private static final String XML_HEAD = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";public static String javaBeanToXml(Object obj) {String xml = "";if (Objects.isNull(obj)) {return xml;}try {XmlMapper xmlMapper = new XmlMapper();xml = xmlMapper.writeValueAsString(obj);} catch (Exception e) {log.error("javaBeanToXml error, obj={}, xml={}", obj, xml, e);return "";}// 添加xml文件头return XML_HEAD + xml;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。