1月10日之day02--xml解析技术 dom4j
发布时间:2020-12-16 06:31:42 所属栏目:百科 来源:网络整理
导读:xml学习 xml语法 元素、属性、注释 文档声明:?xml version="1.0" encoding="utf-8" ? 注释:!-- 这就是xml注释 Dom模型---文档对象模型 |--Node |--Document 文档对象 |--Element标签 |--Attr 属性 |--Text 文本内容 |--Comment 注释 XML解析技术 DOM 技术
xml学习 xml语法 元素、属性、注释 文档声明:<?xml version="1.0" encoding="utf-8" ?> 注释:<!-- 这就是xml注释> Dom模型---文档对象模型 |--Node |--Document 文档对象 |--Element标签 |--Attr 属性 |--Text 文本内容 |--Comment 注释 XML解析技术 DOM 技术 DOM解析 dom4j 和 jaxp 6. Dom4j解析技术 // 4. 获取全部信息 @Test public void readAllInfo() throws DocumentException { SAXReader reader = new SAXReader(); Document doc = reader.read("src/book.xml"); // 获取根节点 Element root = doc.getRootElement(); // 显示根节点的子元素及所有子孙元素信息 showAllInfo(root); } private void showAllInfo(Element root) { // 输出标签名称 System.out.print("<" + root.getName()+" >"); // 由于属性在标签里,所有在此迭代属性 for (Iterator<Attribute> it = root.attributeIterator();it.hasNext();){ // 获取每一个属性对象 Attribute att = it.next(); // 属性名称与属性值 System.out.print(att.getName() + "=" + att.getText()); } // 遍历所有的节点 for (Iterator<Node> it = root.nodeIterator(); it.hasNext();) { // 获取当前元素的每一个节点 Node node = it.next(); // 判断:如果当期节点是标签,递归调用 if (node instanceof Element) { Element e = (Element) node; showAllInfo(e); } // 文本内容 else if (node instanceof Text) { Text t = (Text) node; System.out.print(t.getText()); } else if (node instanceof Comment) { Comment c = (Comment) node; System.out.print("<!--"+c.getText()+"-->"); } } System.out.print("</" + root.getName()+">"); } // 3. 获取编号为“A002” 的书的售价 @Test public void readBookNameByNo() throws DocumentException { SAXReader reader = new SAXReader(); Document doc = reader.read("src/book.xml"); // 1. 得到根节点 Element root = doc.getRootElement(); // 2. 遍历根节点 for (Iterator<Element> it = root.elementIterator(); it.hasNext();) { // 3. 拿到每一个子节点(书) Element book = it.next(); // 4. 得到属性 String bookNo = book.attributeValue("编号"); // 5. 判断,找到编号为A002的书信息,再取出售价 if ("A001".equals(bookNo)) { String price = book.elementText("售价"); System.out.println(price); break; } } } // 2. 获取第二本书,书名 @Test public void readElement2() throws DocumentException { // 解析器 SAXReader reader = new SAXReader(); Document doc = reader.read("src/book.xml"); // 根 Element root = doc.getRootElement(); // root节点下所有子节点的列表 List<Element> list = root.elements(); // 获取第二本书 Element sen_book = list.get(1); // 获取书名节点 // Element bookName = sen_book.element("书名"); // System.out.println(bookName.getText()); String bookName = sen_book.elementText("书名"); System.out.println(bookName); } // 1. 获取第一本书,书名 @Test public void readElement() throws DocumentException { // 获取解析器 SAXReader reader = new SAXReader(); // 通过解析器拿到文档对象 Document doc = reader.read("src/book.xml"); // 获取根节点 Element root = doc.getRootElement(); // 获取“书”节点 (获取root节点下第一个子节点) Element ele_book = root.element("书"); // 获取"书" 节点下“书名”子节点 Element ele_bookName = ele_book.element("书名"); // 获取文本 String bookName = ele_bookName.getText(); System.out.println(bookName); }ele.attributeIterator(); 迭代ele标签的所有属性 ele.nodeIterator(); 迭代ele标签的所有节点 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |