JAVA 应用 DOM4J 及 JDOM 方式解析 XML
来源:互联网 发布:阮一峰javascript 算法 编辑:程序博客网 时间:2024/04/20 06:26
DOM4J方式
DOM4J及 JDOM 是非官方提供的,应用起来比较简洁。
步骤
获得dom4j解析器
SAXReader saxr = new SAXReader();
利用dom4j解析器的read()方法解析xml,获取docuemnt对象
Document docuemnt = saxr.read(new File("src/res/ProfessionalBooks.xml"));
获得xml文件的根节点
Element rootelement = docuemnt.getRootElement();
自己创建通用方法一层一层剥开xml文件
具体代码
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 MyDOM4j { /* * 创建一个方法一层一成剥开xml文件 */ public static void PeelXml(Element rootelement) { Iterator<Element> it = rootelement.elementIterator(); while (it.hasNext()) { Element element = it.next();// System.out.println("........开始........."); System.out.println(); System.out.print("节点名:"+element.getName()+" "); List<Attribute> ats = element.attributes(); if (ats.size() > 0) { for (int i = 0; i < ats.size(); i++) { System.out.print("属性名:" + ats.get(i).getName() + " " + "属性值:" + ats.get(i).getValue()+" "); } } System.out.print("节点值:"+element.getTextTrim());// System.out.println("........结束........."); if(element.elementIterator().hasNext()){ PeelXml(element); } } } public static void main(String[] args) { // TODO Auto-generated method stub // 获得dom4j解析器 SAXReader saxr = new SAXReader(); // 利用dom4j解析器的read()方法解析xml,获取docuemnt对象 try { Document docuemnt = saxr.read(new File("src/res/ProfessionalBooks.xml")); // 获得xml文件的根节点 Element rootelement = docuemnt.getRootElement(); PeelXml(rootelement); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
注意:获得节点值时要用getTextTrim()避免输出来有很多空格和换行
JDOM方式
步骤
创建JDOM的解析器,saxbuilder
SAXBuilder saxbuilder = new SAXBuilder();
创建输入流,输入xml文件
FileInputStream in;in = new FileInputStream("src/res/ProfessionalBooks.xml");InputStreamReader ins = new InputStreamReader(in, "UTF-8");
通过saxBuilder的build方法,将输入流加载到saxBuilder中获得Document对象
Document doc = saxbuilder.build(ins);
利用自己写的方法,一层一层剥开xml文件
具体代码
import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStreamReader;import java.util.List;import org.jdom2.Attribute;import org.jdom2.Document;import org.jdom2.Element;import org.jdom2.JDOMException;import org.jdom2.input.SAXBuilder;public class MyJDOMTest { /* * 创建一个方法一层一成剥开xml文件 */ public static void PeelXml(Element rootelement) { List<Element> Childrenelement = rootelement.getChildren(); for (Element element : Childrenelement) { // System.out.println(".......开始......."); System.out.println(); System.out.print("节点名:" + element.getName() + " "); List<Attribute> atli = element.getAttributes(); if (atli.size() != 0) { for (int i = 0; i < atli.size(); i++) { System.out.print("属性名:" + atli.get(i).getName() + " " + "属性值:" + atli.get(i).getValue() + " "); } } String value = element.getTextTrim(); // if (value.getBytes().length > 0) { System.out.print("节点值:" + value); // } // System.out.print(".......结束......."); if (element.getChildren().size() > 0) { PeelXml(element); } } } public static void main(String[] args) { // TODO Auto-generated method stub // 创建JDOM的解析器,saxbuilder SAXBuilder saxbuilder = new SAXBuilder(); FileInputStream in; try { in = new FileInputStream("src/res/ProfessionalBooks.xml"); InputStreamReader ins = new InputStreamReader(in, "UTF-8"); // 通过saxBuilder的build方法,将输入流加载到saxBuilder中 Document doc = saxbuilder.build(ins); Element rootelement = doc.getRootElement(); PeelXml(rootelement); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JDOMException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // 利用SAXBuilder的build()方法解析xml文件 }}
至于xml:http://blog.csdn.net/qq_23473123/article/details/51396153
2 0
- JAVA 应用 DOM4J 及 JDOM 方式解析 XML
- Java中DOM4J及JDOM 方式解析xml
- JAVA 解析XML之JDOM、DOM4J方式
- 【慕课笔记】4-2 应用DOM4J及JDOM方式解析XML—应用JDOM解析节点属性
- 【慕课笔记】4-7 应用DOM4J及JDOM方式解析XML—应用DOM4J解析节点属性
- 【慕课笔记】4-8 应用DOM4J及JDOM方式解析XML—应用DOM4J解析子节点的信息
- 【慕课笔记】4-1 应用DOM4J及JDOM方式解析XML—JDOM开始解析前的准备工作
- 【慕课笔记】4-4 应用DOM4J及JDOM方式解析XML—JDOM解析时乱码的处理
- 【慕课笔记】4-5 应用DOM4J及JDOM方式解析XML—在JDOM中存储Book对象
- 【慕课笔记】4-3 应用DOM4J及JDOM方式解析XML— 应用JDOM解析子节点的名和值
- JDOM以及DOM4J方式解析XML
- JDOM及DOM4J解析xml文件
- 【慕课笔记】4-6 应用DOM4J及JDOM方式解析XML—关于JDOM使用过程中JAR包的引用
- JAVA解析xml DOM SAX JDOM DOM4J
- JAVA解析xml(JDOM,DOM4J)
- JAVA解析XML的方式DOM、SAX、DOM4J、JDOM、StAX之比较
- java解析xml文件(三种方式-(dom ,jdom ,dom4j)
- java解析xml文件(三种方式-(dom ,jdom ,dom4j)
- BFS简介
- 汉诺塔问题
- 替代 NetMeeting 的多人屏幕共享工具 InletexEMC 国外出品,永久免费
- 报数
- JavaFX8 初探
- JAVA 应用 DOM4J 及 JDOM 方式解析 XML
- Ubuntu 14.04下Redis安装报错:“You need tcl 8.5 or newer in order to run the Redis test”问题解决
- 有趣的通讯录—最终版
- Android 开发中获取View视图的宽和高的几种方法
- 布隆算法
- 初学h5 一些小常识
- HDU 5615 Jam's math problem
- C/C++/linux推荐读物
- P1012