-
=======开始遍历某一本书======== 节点名:id---节点值:1 =======结束遍历某一本书======== =======开始遍历某一本书======== 节点名:id---节点值:2 =======结束遍历某一本书========查看全部
-
package com.imooc.dom4jtest; import java.io.File; 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 { public static void main(String[] args) { // 解析books.xml文件 // 创建SAXReader的对象reader SAXReader reader = new SAXReader();查看全部
-
try { // 通过reader对象的read方法加载books.xml文件,获取document对象 Document document = reader.read(new File("src/res/books.xml")); // 通过document对象获取根节点bookstore Element bookStore = document.getRootElement(); // 通过element对象的elementIterator()方法获取迭代器 Iterator it = bookStore.elementIterator(); // 遍历迭代器,获取根节点中的信息(书籍) while (it.hasNext()) { Element book = (Element) it.next(); // 获取book的属性名以及属性值 List<Attribute> bookAttrs = book.attributes(); for (Attribute attr : bookAttrs) { System.out.println("节点名:" + attr.getName() + "---节点值:" + attr.getValue()); } } } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 运行结果: 节点名:id---节点值:1 节点名:id---节点值:2查看全部
-
DOM优点缺点解析查看全部
-
这一节最简单查看全部
-
***********运行结果貌似不符********** ====开始解析第1书==== 属性名:id---属性值:1 节点名:name节点值:冰与火之歌 节点名:author节点值:乔治马丁 节点名:year节点值:2014 节点名:price节点值:89 ====结束解析第1书==== 1 1 name ====开始解析第2书==== 属性名:id---属性值:2 节点名:name节点值:安徒生童话 节点名:year节点值:2004 节点名:price节点值:77 节点名:language节点值:English ====结束解析第2书==== 2 1 name查看全部
-
if(attrName.equals("id")){ bookEntity.setId(attrValue); } } // 对book节点的子节点的节点名以及节点值的遍历 List<Element> bookChilds = book.getChildren(); for (Element child : bookChilds) { System.out.println("节点名:" + child.getName() + "节点值:" + child.getValue()); if(child.getName().equals("name")){ bookEntity.setName(child.getName()); } else if(child.getName().equals("author")){ bookEntity.setAuthor(child.getValue()); } else if(child.getName().equals("year")){ bookEntity.setYear(child.getValue()); } else if(child.getName().equals("price")){ bookEntity.setPrice(child.getValue()); } else if(child.getName().equals("language")){ bookEntity.setLanguage(child.getValue()); } }查看全部
-
package com.imooc.entity; public class Book { private String id; private String name; private String author; private String year; private String price; private String 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; } }查看全部
-
<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book id="1"> <name>å°ä¸ç«ä¹æ</name> <author>ä¹æ²»é©¬ä¸</author> <year>2014</year> <price>89</price> </book> <book id="2"> <name>å®å¾çç«¥è¯</name> <year>2004</year> <price>77</price> <language>English</language> </book> </bookstore> in = new FileInputStream("src/res/books.xml"); InputStreamReader isr = new InputStreamReader(in,"UTF-8"); // 3.通过saxBuilder的build方法将输入流加载到saxBuilder中 Document document = saxBuilder.build(isr); 运行结果 ====开始解析第1书==== 属性名id---属性值1 节点名name节点值冰与火之歌 节点名author节点值乔治马丁 节点名year节点值2014 节点名price节点值89 ====结束解析第1书==== ====开始解析第2书==== 属性名id---属性值2 节点名name节点值安徒生童话 节点名year节点值2004 节点名price节点值77 节点名language节点值English ====结束解析第2书====查看全部
-
Java解析XML文件有四种解析方式: DOM SAX DOM4J JDOM查看全部
-
JDOM解析乱码处理 1.修改xml第一行的encoding属性 2.在代码中处理,应用IO流知识 //创建输入流,将XML文件加载到输入流中 InputStream in = new FileInputStream("src/book.xml"); //使用包装流InputStreamReader进行读取编码的指定 InputStreamReader isr = new InputStreamReader(in,"UTF-8");查看全部
-
<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book id="1"> <name>å°ä¸ç«ä¹æ</name> <author>ä¹æ²»é©¬ä¸</author> <year>2014</year> <price>89</price> </book> <book id="2"> <name>å®å¾çç«¥è¯</name> <year>2004</year> <price>77</price> <language>English</language> </book> </bookstore> 运行结果 ====开始解析第1书==== 属性名id---属性值1 节点名name节点值å°ä¸ç«ä¹æ 节点名author节点值ä¹æ²»é©¬ä¸ 节点名year节点值2014 节点名price节点值89 ====结束解析第1书==== ====开始解析第2书==== 属性名id---属性值2 节点名name节点值å®å¾çç«¥è¯ 节点名year节点值2004 节点名price节点值77 节点名language节点值English ====结束解析第2书====查看全部
-
// 对book节点的子节点的节点名以及节点值的遍历 List<Element> bookChilds = book.getChildren(); for (Element child : bookChilds) { System.out.println("节点名:" + child.getName() + "节点值:" + child.getValue()); } 运行结果: ====开始解析第1书==== 属性名:id---属性值:1 节点名:name节点值:冰与火之歌 节点名:author节点值:乔治马丁 节点名:year节点值:2014 节点名:price节点值:89 ====结束解析第1书==== ====开始解析第2书==== 属性名:id---属性值:2 节点名:name节点值:安徒生童话 节点名:year节点值:2004 节点名:price节点值:77 节点名:language节点值:English ====结束解析第2书====查看全部
-
List<Element> bookList= rootElement.getChildren(); //继续进行解析 // bookList.size(); // 也可以用for()循环 for (Element book : bookList) { System.out.println("====开始解析第" + (bookList.indexOf(book)+1)+"书===="); //解析book的属性 List<Attribute> attrList =book.getAttributes(); // book.getAttribute(""); // //知道节点下属性名称时,获取节点值 // book.getAttributeValue("id"); //遍历attrList(针对不清楚book节点下属性的名字及数量) for (Attribute attr : attrList) { //获取属性名 String attrName = attr.getName(); //获取属性值 String attrValue = attr.getValue(); System.out.println("属性名:" + attrName + "---属性值:" + attrValue); } System.out.println("====结束解析第" + (bookList.indexOf(book)+1)+"书===="); }查看全部
-
for (Element book : bookList) { System.out.println("====开始解析第" + (bookList.indexOf(book)+1)+"书===="); //解析book的属性 List<Attribute> attrList =book.getAttributes(); //遍历attrList for (Attribute attr : attrList) { //获取属性名 String attrName = attr.getName(); //获取属性值 String attrValue = attr.getValue(); System.out.println("属性名:" + attrName + "---属性值:" + attrValue); } System.out.println("====结束解析第" + (bookList.indexOf(book)+1)+"书===="); } 运行结果: ====开始解析第1书==== 属性名:id---属性值:1 ====结束解析第1书==== ====开始解析第2书==== 属性名:id---属性值:2 ====结束解析第2书====查看全部
举报
0/150
提交
取消