博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DOM4J解析XML
阅读量:7158 次
发布时间:2019-06-29

本文共 4179 字,大约阅读时间需要 13 分钟。

hot3.png

        ​Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP。很多Java软件读写XML都在使用dom4j,Sun公司的JAXM也是用dom4j。Hibernate用它来读写配置文件。

        DOM4J官网下载地址:

        DOM4J解析xml文档实例

package cn.iborder.xml;import java.io.File;import java.util.Iterator;import java.util.List;import java.util.Scanner;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class Dom4jParseXml {		//指定xml文件作为解析对象	public File getXmlFile() {		Scanner scanner = new Scanner(System.in);		System.out.println("请输入要解析的xml文件名:");		String filename = scanner.nextLine();		//System.getProperty("user.dir") 获取项目路径		File file = new File(System.getProperty("user.dir")+"\\src\\"+filename);		return file;	}		//将xml文件转换为Document对象	public Document xmlToDocument(File file) {		SAXReader saxReader = new SAXReader();		Document document = null;		try {			document = saxReader.read(file);		} catch (DocumentException e) {			// TODO Auto-generated catch block			System.out.println("Xml to Document转换失败...");			System.out.println(e.getMessage());		}		return document;	}		//解析文档	public void parseDocument(Document document) {		//获取根节点		Element rootElement = document.getRootElement();		System.out.println("根节点 : "+rootElement.getName());		//遍历输出 		//第一种方法		System.out.println("第一种遍历输出方法");		for (Iterator iterator = rootElement.elementIterator(); iterator.hasNext();) {			Element childElement1 = (Element) iterator.next();			Attribute attribute = childElement1.attribute("id");			System.out.println("id = " + attribute.getText());						for (Iterator iter = childElement1.elementIterator(); iter.hasNext();) {				Element childElement2 = (Element) iter.next();				System.out.println(childElement2.getName() + " = " + childElement2.getText());			}		}				System.out.println("====================");		//第二种方法		System.out.println("第二种遍历输出方法");		List
listElement1 = rootElement.elements(); for (Element element1 : listElement1) { Attribute attribute = element1.attribute("id"); System.out.println(attribute.getName()+" = "+attribute.getText()); List
listElement2 = element1.elements(); for (Element element2 : listElement2) { System.out.println(element2.getName()+" = "+element2.getText()); } } } public static void main(String[] args) { // TODO Auto-generated method stub Dom4jParseXml dom4jParseXml = new Dom4jParseXml(); File file = dom4jParseXml.getXmlFile(); Document document = dom4jParseXml.xmlToDocument(file); dom4jParseXml.parseDocument(document); }}

        DOM4J创建xml文档实例

import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.UnsupportedEncodingException;import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j.io.XMLWriter;public class Dom4JCreateXml {	public static void main(String[] args) {		// TODO Auto-generated method stub		//创建document对象,根节点为class		Element rootElement = DocumentHelper.createElement("class");		Document document = DocumentHelper.createDocument(rootElement);				//添加两个一级子节点		Element childElement11 = rootElement.addElement("student");		Element childElement12 = rootElement.addElement("student");				//为一级子节点添加属性		childElement11.addAttribute("uid", "10086");		childElement12.addAttribute("uid", "10010");				//添加二级子节点		childElement11.addElement("stuName").setText("李彦宏");		childElement11.addElement("stuAge").setText("12");		childElement12.addElement("stuName").setText("马化腾");		childElement12.addElement("stuAge").setText("15");				//输出生成xml文件		OutputFormat format = new OutputFormat("    ", true);// 设置缩进为4个空格,并且另起一行为true        try {				XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/student.xml"), format);			xmlWriter.write(document);		} catch (UnsupportedEncodingException e) {			// TODO Auto-generated catch block			System.out.println(e.getMessage());		} catch (FileNotFoundException e) {			// TODO Auto-generated catch block			System.out.println(e.getMessage());		} catch (IOException e) {			// TODO Auto-generated catch block			System.out.println(e.getMessage());		}	}}

 

 

转载于:https://my.oschina.net/u/2321708/blog/759998

你可能感兴趣的文章
利用Python制作微信小助手防撤回+自动回复二合一,非常强大!
查看>>
消息队列常见问题
查看>>
单系统登录机制
查看>>
码云git问题
查看>>
零基础学Java,需要搞懂的几个问题
查看>>
劈个叉吧
查看>>
ubuntu下挂载服务器samba下的文件夹
查看>>
Hydra破解SSH端口
查看>>
Apache多虚拟主机多版本PHP(5.2+5.3+5.4)共存运行配置全过程
查看>>
Centos解决Apache配置虚拟主机问题。Apache欢迎页可以打开,但是网站目录定位不上...
查看>>
linux下搭建SVN遇到authentication failed问题的解决方法
查看>>
大数据教程(2.6):Linux防火墙配置详解
查看>>
深入浅出JDBC(一) - Connection与事务介绍
查看>>
Python操作小结(mysql、txt\json、crontab、http)
查看>>
find搜索命令
查看>>
QT编译支持Firebird数据库
查看>>
15 个有趣的 JS 和 CSS项目
查看>>
CentOS5.5 安装 Sphinx 全文检索
查看>>
MySQL索引原理及慢查询优化
查看>>
SOAP
查看>>