使用DOM4J解析XML的一个例子

(1)创建ParseXML用来封装DOM4J解析XML

package com.system.demo;

import java.io.File;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;

public class ParseXML {

	StringBuffer result = new StringBuffer();
	Document doc = null;

	// 无参数构造方法
	public ParseXML() {
	}

	// 读取传入的XML文件,返回XML文档对象
	public void read(String fileName) throws Exception {
		SAXReader reader = new SAXReader();
		doc = reader.read(new File(fileName));
	}

	// 传入根元素启动递归遍历
	public void treeWalk() {
		treeWalk(doc.getRootElement());
	}

	// 递归遍历XML文档
	public void treeWalk(Element element) {
		for (int i = 0, size = element.nodeCount(); i < size; i++) {
			Node node = element.node(i);
			// 如果子节点是子元素,继续递归
			if (node instanceof Element) {
				if (node.getText().trim().length() > 0)
					result.append(node.getName() + " = ");
				else
					result.append("
联系人记录
"); treeWalk((Element) node); } else { // 否则就输出子节点的文本值 if (node.getText().trim().length() > 0) result.append(node.getText() + "
"); } } } // 取得XML的解析结果 public String getResult() { return result.toString(); } }

 

 

调用代码(JSP中的一部分):

  	//取得xml的绝对物理路径
  	String fileName = request.getRealPath("test.xml");
  	// 读取XML文件
  	myParse.read(fileName);
  	//遍历内存中的XML文件
  	myParse.treeWalk();
  	//输出结果 用于JSP输出
  	out.println(myParse.getResult());
  

 

test.xml


    
        张三
        001
        A公司
        [email protected]
        (020)12345678
        
广东省广州市
 

你可能感兴趣的:(开源相关)