java 生成xml时报org.xml.sax.SAXParseException: Content is not allowed in prolog.

wcq686 2016-07-05 03:29:28
public static String parserXmlbyMap2(Map<String, Object> rsMap) throws Exception {
String rsXML = "";
Document document = null;
document = DocumentHelper.createDocument();
Map<String, String> queryinfoMap = null;
Map<String, String> resultMap = null;
List<Object> resultList = null;
List<Object> list = null;

if (rsMap.get("queryinfoMap") != null) {
queryinfoMap = (Map<String, String>) rsMap.get("queryinfoMap");
}
if (rsMap.get("resultMap") != null) {
resultMap = (Map<String, String>) rsMap.get("resultMap");
}
if (rsMap.get("resultList") != null) {
resultList = (List<Object>) rsMap.get("resultList");
}
if(rsMap.get("list") != null){
list = (List<Object>) rsMap.get("list");
}

Element request = document.addElement("request");
request.addAttribute("version", "1.0");

Element system = request.addElement("system");
Element servicename = system.addElement("servicename");
if(queryinfoMap.get("servicename")!=null)
servicename.addText(queryinfoMap.get("servicename"));// servicename

Element queryinfo = request.addElement("queryinfo");

Element filed = queryinfo.addElement("filed");
filed.addAttribute("name", "STATUS");
// <!--是否成功信息,1是成功,0是失败-->
if(queryinfoMap.get("STATUS")!=null)
filed.addText(queryinfoMap.get("STATUS"));

// <!--返回错误信息-->
filed = queryinfo.addElement("filed");
filed.addAttribute("name", "ERRORMASSAGE");
if(queryinfoMap.get("ERRORMASSAGE")!=null)
filed.addText(queryinfoMap.get("ERRORMASSAGE"));// 错误信息

// RESULTTYPE
filed = queryinfo.addElement("filed");
filed.addAttribute("name", "RESULTTYPE");
filed.addText("");

// 返回查询信息FTP地址或共享目录
filed = queryinfo.addElement("filed");
filed.addAttribute("name", "PATH");
filed.addText("");

// 结果集数量,指下面row的数量,ftp的也填写0
filed = queryinfo.addElement("filed");
filed.addAttribute("name", "RESULTCOUNT");
filed.addText("0");

// 查询完成时间精确到秒 yyyy-mm-dd hh:mm:ss
filed = queryinfo.addElement("filed");
filed.addAttribute("name", "TIME");
filed.addText(DateUtil.getCurrentDateTime("yyyy-MM-dd HH:mm:ss"));

Element resultInfo = request.addElement("result");
try {
if (resultMap != null) {
for (Map.Entry<String, String> entry : resultMap.entrySet()) {
rsXML += "<filed name=\"" + entry.getKey() + "\" type=\"String\">" + entry.getValue().replace("/", "-") + "</filed>";
String val="";
if(!StringUtil.isEmptyStr(entry.getValue()))
val=entry.getValue();
resultInfo.addElement("filed").addAttribute("name",entry.getKey()).addAttribute("type","String").setText(val.replace("/", "-"));
}
}
if (resultList != null && resultList.size() > 0) {
rsXML += "<array nodename=\"节点名称\" type=\"array\">";
for (int i = 0; i < resultList.size(); i++) {
rsXML += "<row>";
Object source = resultList.get(i);

Method[] sourceMethods = source.getClass().getMethods();
for (int j = 0; j < sourceMethods.length; j++) {
if (sourceMethods[j].getName().startsWith("get")) {
String lsName = sourceMethods[j].getName().substring(3); // 属性
Object loValue = sourceMethods[j].invoke(source); // 值
// String lsSourceType = sourceMethods[i].getReturnType().getName(); // 类型
if(!"Class".equals(lsName))
{
String loValueStr="";
if(loValue!=null)
loValueStr=loValue.toString().replace("<", "<").replace(">", ">");
rsXML += "<filed name=\"" + lsName + "\" type=\"String\">" + loValueStr + "</filed>";
}
}
}

rsXML += "</row>";
}
rsXML += "</array >";
}
if (list != null && list.size() > 0) {
rsXML += "<array nodename=\"listArr\" type=\"array\">";
for (int i = 0; i < list.size(); i++) {
rsXML += "<row>";
Object source = list.get(i);

Method[] sourceMethods = source.getClass().getMethods();
for (int j = 0; j < sourceMethods.length; j++) {
if (sourceMethods[j].getName().startsWith("get")) {
String lsName = sourceMethods[j].getName().substring(3); // 属性
Object loValue = sourceMethods[j].invoke(source); // 值
if(!"Class".equals(lsName))
{
String loValueStr="";
if(loValue!=null)
loValueStr=loValue.toString().replace("<", "<").replace(">", ">");
rsXML += "<filed name=\"" + lsName + "\" type=\"String\">" + loValueStr + "</filed>";
}
}
}

rsXML += "</row>";
}
rsXML += "</array >";
}
System.out.println(rsXML);
if(!StringUtil.isEmptyStr(rsXML))
{
resultInfo.add(DocumentHelper.parseText(rsXML).getRootElement());
}
rsXML = document.asXML().replaceFirst("encoding=\"UTF-8\"", "encoding=\"GBK\"");
} catch (Exception e) {
String message = "回传MAP转XML (普通)异常";
throw new Exception(message, e);
}
return rsXML;
}

想要生成这样的xml格式:
<?xml version="1.0" encoding="GBK"?>
<request version="1.0">
<system>
</system>
<array nodename="节点名称" type="array">
<row>
<filed name="Id" type="String">0</filed>
<filed name="Url" type="String"></filed>
<filed name="PolicyNumer" type="String"></filed>
<filed name="Displaneds" type="String"></filed>
</row>
</array>
<array nodename="listArr" type="array">
<row>
<filed name="Url" type="String"></filed>
<filed name="StartDate" type="String"></filed>
<filed name="RiskCode" type="String"></filed>
<filed name="BranchCode" type="String"></filed>
<filed name="PolicyNum" type="String"></filed>
</row>
<row>
<filed name="Url" type="String"></filed>
<filed name="StartDate" type="String"></filed>
<filed name="RiskCode" type="String"></filed>
<filed name="BranchCode" type="String"></filed>
<filed name="PolicyNum" type="String"></filed>
</row>
<row>
<filed name="Url" type="String"></filed>
<filed name="StartDate" type="String"></filed>
<filed name="RiskCode" type="String"></filed>
<filed name="BranchCode" type="String"></filed>
<filed name="PolicyNum" type="String"></filed>
</row>
</array>
</request>

求教各位大神!!!!!!!!!!
...全文
162 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
pyrzw 2016-07-05
  • 打赏
  • 举报
回复
look look

50,535

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧