Deng_hg
2015-11-09 15:22
采纳率: 60%
浏览 2.4k
已采纳

java xml 空指针异常困惑了几天了?求解决~

package itat.org.xml;

import java.util.ArrayList;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class TestXML04 {
public static void main(String[]ages){
try {
SAXReader reader = new SAXReader();
Document d = reader.read(TestXML04.class.getClassLoader().getResource("xml/books.xml"));//获取类路径名的文件夹
Element root = d.getRootElement();//获得根元素
Element e = findByTitle(d, "java编程思想");
System.out.println(e.elementText("price"));
} catch (DocumentException e) {
e.printStackTrace();
}
}
private static Element findByTitle(Document d,String title){
Element root = d.getRootElement();
List eles = root.elements("book");
for(Element e:eles){
String t = e.elementTextTrim("title");//获得返回的一个去掉空格的元素文本(title)
if(t.equals(title)){//比较传进来的title和获得的
return e;
}
}
return null;
}
private static void tran(){
SAXReader reader = new SAXReader();
try {
Document d = reader.read(TestXML04.class.getClassLoader().getResource("xml/books.xml"));//获取类路径名的文件夹
Element root = d.getRootElement();//获得根元素
List eles = root.elements("book");//获得返回的一个元素的集合
List books = new ArrayList();//新建一个Book集合
for(Element e:eles){//遍历Element集合中所以元素
Book b = new Book();//新建一个Book
b.setId(Integer.parseInt(e.attributeValue("id")));//遍历出来的元素id的值包装拆箱成int类型set给Book
b.setTitle(e.elementText("title"));
b.setAuthor(e.elementText("author"));
b.setPrice(Double.parseDouble(e.elementText("price")));
}
for(Book b:books){
System.out.println(b);
}

    } catch (DocumentException e) {
        e.printStackTrace();

    }

}

}


<?xml version="1.0" encoding="UTF-8"?>


java编程思想
Brucre Eckel
89.00


C++编程思想
Brucre Eckel
69.00


headfirst in java
Orelly
79.00


图片说明

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

4条回答 默认 最新

  • 老曹喜欢IT和吉他 2015-11-09 16:01
    最佳回答

    错误在main函数的15行,e是null说明没解析到,xml文件格式是怎样的?

    评论
    解决 无用
    打赏 举报
查看更多回答(3条)

相关推荐 更多相似问题