日期:2014-05-19  浏览次数:20811 次

在win下能解析的xml,到了liunx就不行了
有一个xml文件在windows环境下能正常解析,但在linux下就报错了
解析方法
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

ByteArrayInputStream in = new ByteArrayInputStream(str.getBytes());
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(in);//报错行
Element result = document.getRootElement();

<?xml version="1.0" encoding="GB2312"?>
<workflow label="TaskAllTest" tasktype="workflow" tasktag="template.TaskAllTest2">
......
</workflow >
文件太大了就没贴了,这个文件在windows下是能正常解析的,其它好多xml文件在linux下也能正常解析,但就这一个不行,我确认这个文件是没有乱码,为正常的xml格式。
请问有人遇到这样的情况吗?
报错信息:
<May 8, 2012 4:36:03 PM CST> <Error> <com.ai.appframe2.complex.service.proxy.ProxyInvocationHandler> <BEA-000000> <方法异常
org.xml.sax.SAXParseException: <Line 1, Column 4340>: XML-20126: (Fatal Error) '<' cannot appear in attribute value.
  at oracle.xml.parser.v2.XMLError.flushErrorHandler(XMLError.java:422)
  at oracle.xml.parser.v2.XMLError.flushErrors1(XMLError.java:287)
  at oracle.xml.parser.v2.XMLReader.scanNameChars(XMLReader.java:1240)
  at oracle.xml.parser.v2.XMLReader.scanQName(XMLReader.java:2069)
  at oracle.xml.parser.v2.NonValidatingParser.parseAttr(NonValidatingParser.java:1733)
  at oracle.xml.parser.v2.NonValidatingParser.parseAttributes(NonValidatingParser.java:1682)
  at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1523)
  at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:409)
  at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:355)
  at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:226)
  at org.dom4j.io.SAXReader.read(SAXReader.java:339)
  at org.dom4j.io.SAXReader.read(SAXReader.java:261)
  at com.ai.appframe2.util.XmlUtil.parseXml(XmlUtil.java:24)
  at com.ai.appframe2.util.XmlUtil.parseXmlOfString(XmlUtil.java:45)

------解决方案--------------------
JAVA_OPTIONS="-Dweblogic.codeset=gbk -Dfile.encoding=gbk -Dweblogic.security.SSL.trustedCAKeyStore="/home/liutt/OracleWls64/Middleware/wlserver_10.3/server/lib/cacerts" ${JAVA_OPTIONS}"

加了个="-Dweblogic.codeset=gbk -Dfile.encoding=gbk 就OK了