报错如下:
org.dom4j.DocumentException: Error on line 1 of document file:///D:/eclipse/workspace/dom4jDemo/xml/200509051048.xml : 缺少文件根组件。 Nested exception: 缺少文件根组件。
at org.dom4j.io.SAXReader.read(SAXReader.java:482)
at org.dom4j.io.SAXReader.read(SAXReader.java:264)
at com.jerrymouse.dom4j.demo.Test.readXMLData(Test.java:46)
at com.jerrymouse.dom4j.demo.Test.main(Test.java:36)
Nested exception:
org.xml.sax.SAXParseException: 缺少文件根组件。
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3376)
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3364)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:668)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at org.dom4j.io.SAXReader.read(SAXReader.java:465)
at org.dom4j.io.SAXReader.read(SAXReader.java:264)
at com.jerrymouse.dom4j.demo.Test.readXMLData(Test.java:46)
at com.jerrymouse.dom4j.demo.Test.main(Test.java:36)
Nested exception: org.xml.sax.SAXParseException: 缺少文件根组件。
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3376)
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3364)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:668)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at org.dom4j.io.SAXReader.read(SAXReader.java:465)
at org.dom4j.io.SAXReader.read(SAXReader.java:264)
at com.jerrymouse.dom4j.demo.Test.readXMLData(Test.java:46)
at com.jerrymouse.dom4j.demo.Test.main(Test.java:36)
以下是我的测试代码:
public static void main(String[] args) throws Exception {
//解决中文问题
//createXML("xml//test.xml");
String xPath = "/xml/rs:data/rs:insert/z:row/@oth_16";
System.out.println(readXMLData("xml//200509051048.xml", xPath));
} public static String readXMLData(String filename, String xpath)
throws Exception {
String results = new String(); SAXReader saxReader = new SAXReader();
try {
saxReader.setEncoding("UTF-8");
Document document = saxReader.read(new File(filename)); /** 先用xpath查找对象 */
List list = document.selectNodes(xpath);
Iterator iter = list.iterator();
while (iter.hasNext()) {
Attribute attribute = (Attribute) iter.next();
results = attribute.getValue();
}
} catch (Exception e) {
e.printStackTrace();
}
return results;
}
xml文档的头三个字节是:EF BB BF应该是utf-8编码格式,但是读取时老是报错?请各位看看是什么问题?
org.dom4j.DocumentException: Error on line 1 of document file:///D:/eclipse/workspace/dom4jDemo/xml/200509051048.xml : 缺少文件根组件。 Nested exception: 缺少文件根组件。
at org.dom4j.io.SAXReader.read(SAXReader.java:482)
at org.dom4j.io.SAXReader.read(SAXReader.java:264)
at com.jerrymouse.dom4j.demo.Test.readXMLData(Test.java:46)
at com.jerrymouse.dom4j.demo.Test.main(Test.java:36)
Nested exception:
org.xml.sax.SAXParseException: 缺少文件根组件。
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3376)
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3364)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:668)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at org.dom4j.io.SAXReader.read(SAXReader.java:465)
at org.dom4j.io.SAXReader.read(SAXReader.java:264)
at com.jerrymouse.dom4j.demo.Test.readXMLData(Test.java:46)
at com.jerrymouse.dom4j.demo.Test.main(Test.java:36)
Nested exception: org.xml.sax.SAXParseException: 缺少文件根组件。
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3376)
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3364)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:668)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at org.dom4j.io.SAXReader.read(SAXReader.java:465)
at org.dom4j.io.SAXReader.read(SAXReader.java:264)
at com.jerrymouse.dom4j.demo.Test.readXMLData(Test.java:46)
at com.jerrymouse.dom4j.demo.Test.main(Test.java:36)
以下是我的测试代码:
public static void main(String[] args) throws Exception {
//解决中文问题
//createXML("xml//test.xml");
String xPath = "/xml/rs:data/rs:insert/z:row/@oth_16";
System.out.println(readXMLData("xml//200509051048.xml", xPath));
} public static String readXMLData(String filename, String xpath)
throws Exception {
String results = new String(); SAXReader saxReader = new SAXReader();
try {
saxReader.setEncoding("UTF-8");
Document document = saxReader.read(new File(filename)); /** 先用xpath查找对象 */
List list = document.selectNodes(xpath);
Iterator iter = list.iterator();
while (iter.hasNext()) {
Attribute attribute = (Attribute) iter.next();
results = attribute.getValue();
}
} catch (Exception e) {
e.printStackTrace();
}
return results;
}
xml文档的头三个字节是:EF BB BF应该是utf-8编码格式,但是读取时老是报错?请各位看看是什么问题?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货