java中使用JDOM解析XML

JDOM是第三方开发的一个jar包,在将其引入了项目后,就可以使用JDOM来解析XML文件,下面这个例子中,我引入的是jdom-2.0.6,代码如下:

package net.yedward.xml;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.lang.annotation.Documented;
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;

/**
 * 使用JDOM解析XML
 * 
 * @author YEDWARD
 *
 */
public class JDOMXMLTest {
	public static void main(String[] args) {
		// 创建SAXBuilder对象
		SAXBuilder saxBuilder = new SAXBuilder();
		try {
			// 创建输入流,将XML文件加载到输入流中
			InputStream in = new FileInputStream("sitemap.xml");
			// 如果有乱码,可以用下面的方式来转码
			// InputStreamReader isr = new InputStreamReader(in, "UTF-8");
			// Document document = saxBuilder.build(isr);
			Document document = saxBuilder.build(in);
			// 获取根节点
			Element rootElement = document.getRootElement();
			// 获取根节点下面的list集合
			List<Element> urlList = rootElement.getChildren();
			for (Element url : urlList) {
				System.out.println("解析第" + (urlList.indexOf(url) + 1) + "个url");
				List<Attribute> attributes = url.getAttributes();
				for (Attribute attribute : attributes) {
					// 获取属性名和属性值
					System.out.println(attribute.getName() + ":" + attribute.getValue());
				}
				List<Element> urlChildren = url.getChildren();
				for (Element urlChild : urlChildren) {
					System.out.println(urlChild.getName() + ":" + urlChild.getValue());
				}
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (JDOMException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

使用JDOM比使用官方提供的SAX和DOM这两种方式要方便、简单的多。

本文标题:java中使用JDOM解析XML

本文链接:http://yedward.net/?id=17

本文版权归作者所有,欢迎转载,转载请以文字链接的形式注明文章出处。

相关文章