快速读取xml格式的String字符串内容【dom4j学习】

/**
 * This file created at 2011-11-20.
 *
 * Copyright (c) 2002-2011 Bingosoft, Inc. All rights reserved.
 */
package com.xml;

import java.util.List;

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

/**
 * <code>{@link XmlRead}</code>
 * 
 * TODO : document me
 * 
 * @author hjp
 */
public class XmlRead {
	private static void getAllNodes(String xml) {
		try {
			Document authtmp = DocumentHelper.parseText(xml);

			List<Element> list = authtmp.selectNodes("NewDataSet");
			for (int j = 0; j < list.size(); j++) {
				Element node = (Element) list.get(j);
				nodeByNodes(node);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private static void nodeByNodes(Element node) {
		QName qname = node.getQName();
		System.out.println("qname_____" + qname.getName());

		List list = node.elements();
		for (int i = 0; i < list.size(); i++) {
			Element element = (Element) list.get(i);
			System.out.println(element.getQName().getName());
			if (element.getQName().getName().equals("数学测验")) {
				List list2 = element.elements();
				for (int j = 0; j < list2.size(); j++) {
					Element element2 = (Element) list2.get(j);
					System.out.print(element2.getQName().getName());
					System.out.print("--------");
					System.out.print(element2.getText());
					System.out.println();
				}
			}
		}
	}

	public static void main(String[] args) {
		String xmlString = "&lt;NewDataSet&gt;&lt;数学测验&gt;&lt;姓名&gt;兰花&lt;/姓名&gt;&lt;电子邮件&gt;[email protected]&lt;/电子邮件&gt;&lt;出生日期&gt;1998-08-31&lt;/出生日期&gt;&lt;性别&gt;女&lt;/性别&gt;&lt;省份&gt;北京&lt;/省份&gt;&lt;创建日期&gt;2011-09-20T16:57:03.197+08:00&lt;/创建日期&gt;&lt;分数&gt;75&lt;/分数&gt;&lt;/数学测验&gt;&lt;/NewDataSet&gt;";
		xmlString = xmlString.replaceAll("&lt;", "<").replaceAll("&gt;", ">");
		getAllNodes(xmlString);
	}
}

 
参考资料:http://hi.baidu.com/gogoxmy/blog/item/8f05d98858e611a70e2444f1.html

 

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