使用jdom读取xml问题
java文件和test.xml在同一个包下面
package com.yl.readxml;
import java.io.File;
import java.io.FileInputStream;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
public class readxml2 {
public static void main(String[] args) throws Exception{
SAXBuilder sb=new SAXBuilder();
String name="test.xml";
Document doc=sb.build(readxml2.class.getClassLoader().getResourceAsStream("test.xml"));
Element root=doc.getRootElement(); //HD
List list=root.getChildren("person"); //child
for(int i=0;i<list.size();i++)
{
Element element=(Element) list.get(i);
String id=element.getAttributeValue("id");
System.out.println(element.getAttributeValue("name")+" "+element.getAttributeValue("email"));
}
}
}
test.xml如下
<?xml version="1.0" encoding="UTF-8"?>
<addressbook>
<person id="1">
<name>王奇鹏</name>
<email>wangqipeng@gmail.com</email>
</person>
<person id="2">
<name>王艳明</name>
<email>wangyanming1980@gmail.com</email>
</person>
<person id="3">
<name>王广庆</name>
<email>wangluohuli@sina.com.cn</email>
</person>
</addressbook>
异常:
Exception in thread "main" org.jdom.JDOMException: Error in building
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:373)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:673)
at com.yl.readxml.readxml2.main(readxml2.java:15)
Caused by: java.net.MalformedURLException
at java.net.URL.<init>(URL.java:601)
at java.net.URL.<init>(URL.java:464)
at java.net.URL.<init>(URL.java:413)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:650)
at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:186)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:354)
... 2 more
Caused by: java.net.MalformedURLException
at java.net.URL.<init>(URL.java:601)
at java.net.URL.<init>(URL.java:464)
at java.net.URL.<init>(URL.java:413)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:650)
at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:186)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:354)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:673)
at com.yl.readxml.readxml2.main(readxml2.java:15)