作者terrybob (罪云樵)
看板java
标题[问题] java xml dom 找名称值为空时的问题
时间Tue Dec 14 20:05:52 2010
问题:
当我成功找到某一名称,但若该名称的值为空
java就出错了…我该如何去改java的程式呢?
可以找得xml名称,但若他没有值,就不去取值呢?
以xml档案第16行为例:
Age的内容为空值
我原先是用以下方式
if( !doc.getElementsByTagName("Age").item(i).getFirstChild().
getNodeValue().equals("") ){
System.out.println(" 年纪: " + doc.getElementsByTagName("Age").
item(i).getFirstChild().getNodeValue());
}
但一样出错…请高手指教。
----------------------------------------
[xml档案]
<?xml version="1.0" encoding="UTF-8"?>
<Personnel>
<Employee type="permanent">
<Name>Seagull</Name>
<Id>3674</Id>
<Age>34</Age>
</Employee>
<Employee type="contract">
<Name>Robin</Name>
<Id>3675</Id>
<Age>10</Age>
</Employee>
<Employee type="permanent">
<Name>Crow</Name>
<Id>3676</Id>
<Age />
</Employee>
</Personnel>
[java程式]
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
//Using factory get an instance of document builder
DocumentBuilder db = dbf.newDocumentBuilder();
//parse using builder to get DOM representation of the XML file
dom = db.parse("1.xml");
File f=new File("1.xml");
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc = builder.parse(f);
NodeList nl = doc.getElementsByTagName("Employee");
for (int i=0;i<nl.getLength();i++){
System.out.print(" 姓名: " +
doc.getElementsByTagName("Name").item(i).getFirstChild().getNodeValue());
System.out.print(" 代号: " +
doc.getElementsByTagName("Id").item(i).getFirstChild().getNodeValue());
System.out.println(" 年纪: " +
doc.getElementsByTagName("Age").item(i).getFirstChild().getNodeValue());
}
}catch(ParserConfigurationException pce) {
pce.printStackTrace();
}catch(SAXException se) {
se.printStackTrace();
}catch(IOException ioe) {
ioe.printStackTrace();
}
-----
--
朝叩朱门乞余餐
嗟来冷眼有德颜
归途踏尽金砖路
漫天残霞不用钱
吾乃…富贵乞丐-花爵百链生
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 211.75.186.7
1F:推 slalala:迭带 12/14 23:49