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

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条)

报告相同问题?

悬赏问题

  • ¥15 Oracle触发器记录修改前后的字段值
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器