慕课网——JDOM解析XML
来源:互联网 发布:商品期货交易软件下载 编辑:程序博客网 时间:2024/04/29 13:01
//需要导入JDOM包包
public class JDOMTest {private static ArrayList<Book> bookArrayList = new ArrayList<Book>();public static void main(String[] args) {// 进行对book.xml文件解析// 1. 创建一个SAXBuilder对象SAXBuilder saxBuilder = new SAXBuilder();// 2.创建一个输入流,将xml文件加载到输入流中InputStream in;try {// 这里将book.xml拖入名为res的Folderin = new FileInputStream("src/res/books.xml");// 编码问题InputStreamReader isr = new InputStreamReader(in, "utf-8");// 3. 通过saxBuilder的builder方法,将输入流加载在saxBuilder中// !!!这里加载com.jdom2包包Document document = saxBuilder.build(isr);// 4.通过document对象获取xml文件的根节点Element rootElement = document.getRootElement();// 5.获取根节点的子节点的List集合// 这个是导入util包包List<Element> bookList = rootElement.getChildren();// 使用foreach方式继续解析,如果想要通过普通for解析,这里有个size()方法int bookNumber = 0;for (Element book : bookList) {Book bookEntity = new Book();System.out.println("========开始解析第"+ (bookList.indexOf(book) + 1) + "书========");// 解析book属性List<Attribute> attrList = book.getAttributes();// 知道节点下面属性名称时候,可以获取属性值// book.getAttributeValue("id");// 遍历attrList(针对不清楚book节点下面属性的名字和数量)for (Attribute attr : attrList) {// 不会保留含有空行的文本// 获取属性名String attrName = attr.getName();// 获取属性值String attrValue = attr.getValue();System.out.println("属性名: " + attrName + "---属性值: "+ attrValue);if (attrName.equals("id")) {bookEntity.setId(attrValue);}}// 对book节点的子节点的节点名和节点值的遍历// jdom下面都含有getchildren()方法List<Element> bookChildren = book.getChildren();for (Element child : bookChildren) {System.out.println("节点名: " + child.getName() + "----节点值: "+ child.getValue());if (child.getName().equals("name")) {bookEntity.setName(child.getValue());} 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("language");}}System.out.println("========结束解析第"+ (bookList.indexOf(book) + 1) + "书========");bookArrayList.add(bookEntity);bookEntity = null;// 这里没有做遍历,简单测试一下System.out.println("这是列表里的第" + bookArrayList.size() + "本书");System.out.println("该节点的id是: " + bookArrayList.get(bookNumber).getId());System.out.println("它的书名是: " + bookArrayList.get(bookNumber).getName());bookNumber++;}} catch (FileNotFoundException e) {e.printStackTrace();} catch (JDOMException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}
0 0
- 慕课网——JDOM解析XML
- XML解析——Jdom
- Java解析xml——JDOM解析
- Java——JDOM解析XML文件
- JDom,jdom解析xml文件
- xml的解析方式——dom/sax、jdom、dom4j
- java xml解析 学习笔记(3)——JDOM
- XML解析与创建之——JDOM
- 解析XML文件——JDOM基本操作
- XML解析之—JDOM与DOM4J(更好)
- XML解析----JDom解析XML
- 使用Jdom解析XML
- JDOM 与XML解析
- 解析xml之--JDOM
- xml文件解析-JDOM
- 使用JDOM解析XML
- 使用JDOM解析XML
- jdom解析xml文档
- App11_03_线程中join()方法的使用
- App11_04_Thread子类数据共享
- Struts2的配置以及详解
- shell 进入日期目录tar包
- 北京大学直博申请夏令营上机考试题目分析
- 慕课网——JDOM解析XML
- hihocoder1182欧拉回路
- 【机房收费系统】机房收费系统之删除用户
- linux搭建Apache服务(未经测试,先转再说)
- 关于服务器和虚拟主机的区别
- 1、k-邻近算法
- poj-2758 Checking the Text
- App11_05_Runnable接口程序模拟航班售票系统
- CodeForces#313 D. Equivalent Strings