java解析、生成xml的一些java包jdom、dom4

关于java语言中xml的生成与解析日常处理中有4中处理方式,分别是dom,sax,jdom,dom4j.
这里若是不需要考虑他们的今生前世,就直接看下面的使用方法吧。
简单说明下jdom与dom4这两个java包。
jdom: JDOM的目的是成为 Java 特定文档模型,它简化与 XML 的交互并且比使用 DOM 实现更快。由于是第一个 Java 特定模型,JDOM 一直得到大力推广和促进。正在考虑通过“Java 规范请求 JSR-102”将它最终用作“Java 标准扩展”。
dom4:dom4 代表了完全独立的开发结果,但最初,它是 JDOM 的一种智能分支。它合并了许多超出基本 XML 文档表示的功能,包括集成的 XPath 支持、XML Schema 支持以及用于大文档或流化文档的基于事件的处理。
ps:DOM4J 是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的 Java 软件都在使用 DOM4J 来读写 XML.
建议在日常的开发中选择dom4j包。
下面分别说下dom4j和jdom的使用:以下是一个createxml.java源码。
项目引用:
dom4j-1.6.1.jar包。

package org.cpop.dom4j.demo;

import java.io.FileWriter;
import java.io.IOException;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

public class createxml {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		Document document=createdocument();
		writeDocument(document, "d:\\dom4j.xml");
	}
	
	private static Document createdocument()
	{
		Document document=DocumentHelper.createDocument();
		 //生成一个接点  
        Element root = document.addElement("root");  
        //生成root的一个接点  
        Element category = root.addElement("category"); 
        category.addAttribute("type","1");
        //生产category的一个接点  
        Element id = category.addElement("id");  
        //生成id里面的参数值  
        id.addAttribute("name", "id");  
        //生成id里面的值  
        id.addText("1");  
        return document;  
	}
	 /** 
     * 写入xml文件地址 
     * @param document 所属要写入的内容 
     * @param outFile 文件存放的地址 
     */  
    public static void writeDocument(Document document, String outFile){  
        try{  
            //读取文件  
            FileWriter fileWriter = new FileWriter(outFile);  
            //设置文件编码  
            OutputFormat xmlFormat = new OutputFormat();  
            xmlFormat.setEncoding("utf-8");  
            xmlFormat.setIndentSize(40);
            //创建写文件方法  
            XMLWriter xmlWriter = new XMLWriter(fileWriter,xmlFormat);  
            //写入文件  
            xmlWriter.write(document);  
            //关闭  
            xmlWriter.close();  
        }catch(IOException e){  
            System.out.println("文件没有找到");  
            e.printStackTrace();  
        }  
    } 

}

最后生成的xml文件如下:
<?xml version="1.0" encoding="utf-8"?>
<root>
	<category  type="1">
		<id name="id">1</id>
	</category>
</root>


怎么样dom4j的用法很简单吧!
<完>

下面是使用dom4j来解析xml的方法。
以下是一个resolvexml.java源码。
项目引用:
dom4j-1.6.1.jar包。

package org.cpop.dom4j.demo;

import java.io.BufferedReader;
import java.io.FileReader;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

public class resolvexml {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		String xml=readxml();
		try {
			resolvexmls(xml);
		} catch (DocumentException e) {
			e.printStackTrace();
		}
	}

	public static void resolvexmls(String xml) throws DocumentException
	{
		Document document=DocumentHelper.parseText(xml);
		Element rootelement=document.getRootElement();
		Element categoryelement=rootelement.element("category");
		System.out.println("category的type属性值:"+categoryelement.attributeValue("type"));
		Element idelement=categoryelement.element("id");
		System.out.println("id的值为:"+idelement.getText());
	}
	//读取文件。
	public static String readxml()
	{
		String path="d:\\dom4j.xml";
		try {
			FileReader fr=new FileReader(path);
			BufferedReader in=new BufferedReader(fr);
			String str=new String();
			StringBuffer sb=new StringBuffer();
			while((str=in.readLine())!=null)
			{
				sb.append(str);
			}
			return sb.toString();
		} catch (Exception e) {
			return "";
		}

	}

}


那么打印出来的结果如下:
引用

category的type属性值:1
id的值为:1


ok,至此dom4j的基本使用差不多完了,更多的复杂生成与解析,看api才是正道。
<完>

你可能感兴趣的:(java,xml)