高手进!关于Exception in thread "main" java.lang.NullPointerException问题!急………………

cyl5753 2009-05-17 03:22:33

package Lession1;

import java.io.File;
import java.util.List;

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

public class XMLPrase {

/**
* @param args
* @throws DocumentException
*/
public static void main(String[] args) throws DocumentException {
// TODO Auto-generated method stub
File file=new File("D:\\workspace1\\com.chenyili\\src\\Lession1\\students.xml");
SAXReader reader=new SAXReader();
Document doc=reader.read(file);
//得到根节点
Element root =doc.getRootElement();
System.out.println("<"+root.getName()+">");
List<Element> list=root.elements();
//遍历根节点元素
for(Element ele:list){
System.out.println("\t<"+ele.getName()+">");
//取得第一个节点属性
Attribute att=ele.attribute(0);
System.out.print(att.getName() + "='" + att.getValue() + "'"); List<Element> eles=ele.elements();
//遍历节点的属性
for(Element e:eles){
System.out.println("\t\t<"+e.getName()+">");
String Value=e.getText();
System.out.println(Value);
System.out.println("\t</"+e.getName()+">");
}
System.out.println("\t</"+ele.getName()+">");
}
System.out.println("</"+root.getName()+">");


}

}

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

<students>
<student>
<name>Mike</name>
<age>23</age>
</student>
<student>
<name>Rose</name>
<age>22</age>
</student>
</students>
报错信息:
Exception in thread "main" java.lang.NullPointerException
at Lession1.XMLPrase.main(XMLPrase.java:29)
<students>
<student>


去掉红色的字段就可以正常运行,但是那两个值为什么就打印不出来?
DOM解析XML
...全文
437 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
KingZChina 2009-05-18
  • 打赏
  • 举报
回复
提示29行有空值
nebulabox 2009-05-17
  • 打赏
  • 举报
回复
Attribute att=ele.attribute(0); 返回一个空att
TianZhenTian 2009-05-17
  • 打赏
  • 举报
回复
问题出在这儿 Attribute att=ele.attribute(0)
但是最根本的原因是你的任何一个标签都没有属性 ,所以你当然取不到任何 attribute,强烈建议你去看下XML文档的格式知识。
Csdbfans 2009-05-17
  • 打赏
  • 举报
回复
你这里是不是引号错了
System.out.print(att.getName() + "='" + att.getValue() + "'"); 这个试改成这个
System.out.print(att.getName() + "=" + att.getValue() );
伤寒泪 2009-05-17
  • 打赏
  • 举报
回复
说明那里面没有值啊。。你追踪找找吧。。
uastation 2009-05-17
  • 打赏
  • 举报
回复
又是讨厌的空指值错.哎...路过.

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧