課程
/后端開發(fā)
/Java
/Java眼中的XML---文件讀取
誰有作業(yè)的答案?就是視頻最后保存到集合中。還有一個問題屬性值的時候需要for循環(huán),怎么到了節(jié)點的時候沒有for循環(huán)了呢?
2016-07-25
源自:Java眼中的XML---文件讀取 4-8
正在回答
package?com.test; import?java.io.File; import?java.util.ArrayList; import?java.util.Iterator; 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?DOM4JTest?{ private?static?List<Book>?books?=?new?ArrayList<Book>(); public?static?void?main(String[]?args)?{ //?解析books.xml SAXReader?reader?=?new?SAXReader(); try?{ Document?document?=?reader.read(new?File("src/res/books.xml")); Element?bookStore?=?document.getRootElement(); Iterator?it?=?bookStore.elementIterator(); while(it.hasNext()){ Book?bookEntity?=?new?Book(); Element?book?=?(Element)it.next(); List<Attribute>?bookAttrs?=?book.attributes(); for?(Attribute?attr?:?bookAttrs)?{ System.out.println(attr.getName()+"->"+attr.getValue()); if(attr.getName().equals("id")){ bookEntity.setId(attr.getValue()); } } Iterator?itt?=?book.elementIterator(); while(itt.hasNext()){ Element?bookChild?=?(Element)itt.next(); System.out.println(bookChild.getName()+"->"+bookChild.getStringValue()); switch?(bookChild.getName())?{ case?"name": bookEntity.setName(bookChild.getStringValue()); break; case?"author": bookEntity.setAuthor(bookChild.getStringValue()); break; case?"year": bookEntity.setYear(bookChild.getStringValue()); break; case?"price": bookEntity.setPrice(bookChild.getStringValue()); break; case?"language": bookEntity.setLanguage(bookChild.getStringValue()); break; default: break; } } books.add(bookEntity); bookEntity=null; System.out.println("--------------------------------"); } for?(Book?book?:?books)?{ System.out.println(book.toString()); System.out.println("--------------------------------"); } }?catch?(DocumentException?e)?{ e.printStackTrace(); } } }
玄鑒 提問者
package?com.test; public?class?Book?{ private?String?id; private?String?name; private?String?author; private?String?year; private?String?price; private?String?language; @Override public?String?toString()?{ return?("id->"+id+"\nname->"+name+"\nauthor->"+author+"\nyear->"+year+"\nprice->"+price+"\nlanguage->"+language); } public?String?getId()?{ return?id; } public?void?setId(String?id)?{ this.id?=?id; } public?String?getName()?{ return?name; } public?void?setName(String?name)?{ this.name?=?name; } public?String?getAuthor()?{ return?author; } public?void?setAuthor(String?author)?{ this.author?=?author; } public?String?getYear()?{ return?year; } public?void?setYear(String?year)?{ this.year?=?year; } public?String?getPrice()?{ return?price; } public?void?setPrice(String?price)?{ this.price?=?price; } public?String?getLanguage()?{ return?language; } public?void?setLanguage(String?language)?{ this.language?=?language; } }
for循環(huán)是為了遍歷,每個book節(jié)點下的屬性值和屬性名。而下面是用了while循環(huán)遍歷book下的節(jié)點名,和節(jié)點值。其實性質是一樣的。而且在上一個循環(huán)也有用到一個while循壞來遍歷book的個數(shù)的,但還需要遍歷book里面的屬性名和值,所以需要都一層循環(huán)而已。
舉報
通過Java認識并且創(chuàng)造XML文件,如何應用 Java“解析 XML
2 回答誰能告訴我下學習本章的作用?
1 回答【2-3作業(yè)】在Java中保留xml數(shù)據(jù)的結構
2 回答誰來解釋解釋
2 回答trim()有什么作用
1 回答這是教案嗎?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2016-08-16
2016-08-16
2016-07-25
for循環(huán)是為了遍歷,每個book節(jié)點下的屬性值和屬性名。而下面是用了while循環(huán)遍歷book下的節(jié)點名,和節(jié)點值。其實性質是一樣的。而且在上一個循環(huán)也有用到一個while循壞來遍歷book的個數(shù)的,但還需要遍歷book里面的屬性名和值,所以需要都一層循環(huán)而已。