基于JDOM生成解析XML过程解析
cuisuqiang 人气:0JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。
JDOM 直接为JAVA编程服务。它利用更为强有力的JAVA语言的诸多特性(方法重载、集合概念以及映射),把SAX和DOM的功能有效地结合起来。
Jdom是用Java语言读、写、操作XML的新API函数。Jason Hunter 和 Brett McLaughlin公开发布了它的1.0版本。在直觉、简单和高效的前提下,这些API函数被最大限度的优化。在接下来的篇幅里将介绍怎么用Jdom去读写一个已经存在的XML文档。
到官方网站下载JDOM包http://www.jdom.org/
注意的是,版本1和版本2的类路径已经变更,如果你是更新使用版本2,则需要重新编译你的代码
package com.test; import java.io.FileOutputStream; import java.util.List; import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.input.SAXBuilder; import org.jdom2.output.Format; import org.jdom2.output.XMLOutputter; /** * @说明 JDom生成解析XML * @author cuisuqiang * @version 1.0 * @since */ @SuppressWarnings("unchecked") public class JDomDemo { public static void main(String[] args) { String file = "C:\\p.xml"; // 文件存放位置 JDomDemo dj = new JDomDemo(); dj.createXml(file); dj.parserXml(file); } /** * 生成XML * @param filePath 文件路径 */ public void createXml(String fileName) { Element root = new Element("persons"); Document document = new Document(root); Element person = new Element("person"); root.addContent(person); Element name = new Element("name"); name.setText("java小强"); person.addContent(name); Element sex = new Element("sex"); sex.setText("man"); person.addContent(sex); Element age = new Element("age"); age.setText("23"); person.addContent(age); XMLOutputter XMLOut = new XMLOutputter(); try { Format f = Format.getPrettyFormat(); f.setEncoding("UTF-8");//default=UTF-8 XMLOut.setFormat(f); XMLOut.output(document, new FileOutputStream(fileName)); } catch (Exception e) { e.printStackTrace(); } } /** * 解析XML * @param filePath 文件路径 */ public void parserXml(String fileName) { try { SAXBuilder builder = new SAXBuilder(); Document document = builder.build(fileName); Element root = document.getRootElement(); List persons = root.getChildren("person"); for (int i = 0; i < persons.size(); i++) { Element person = (Element) persons.get(i); List pros = person.getChildren(); for (int j = 0; j < pros.size(); j++) { Element element = (Element) pros.get(j); System.out.println(element.getName() + ":" + element.getValue()); } } } catch (Exception e) { e.printStackTrace(); } } }
加载全部内容