[問題] java xml dom 找名稱值為空時的問題
問題:
當我成功找到某一名稱,但若該名稱的值為空
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
推
12/14 23:49, , 1F
12/14 23:49, 1F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):