XML解析( Dom4j 详解)
来源:互联网 发布:万能票据打印软件 编辑:程序博客网 时间:2024/05/23 23:39
Dom4j与JDOM 一样,也是开源代码的java库。
Dom4j同时也是使用SAX解析器来分析xml文档,要创建dom4j树,Dom4j可以接收
Dom格式的内容,并提供从dom4j树到SAX的事件流或W3CDOM树的输出机制。
不同的是dom4j自带了一个SAX解析器,如果没有显示的设置SAX解析器,也可以
通过系统属性设置解析器。
创建一个xml文档:
import java.io.FileOutputStream;
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 Dom4jTest1
{
public static void main(String[] args) throws IOException
{//创建文档
Document document = DocumentHelper.createDocument();
//创建一个根元素
Element root = DocumentHelper.createElement("student");
//给文档添加根元素
document.setRootElement(root);
//给根元素添加属性
root.addAttribute("name","zhangsan");
//添加子元素
Element helloElement = root.addElement("hello");
Element worldElement = root.addElement("world");
//设置子元素文本内容
helloElement.setText("hello");
worldElement.setText("world");
helloElement.addAttribute("age","20");
//输出(文本形式)
XMLWriter xmlWriter = new XMLWriter();
xmlWriter.write(document);
//输出的格式
OutputFormat format = new OutputFormat(" ",true );
XMLWriter xmlWriter2 = new XMLWriter(new FileOutputStream
("student2.xml"),format);
xmlWriter2.write(document);
XMLWriter xmlWriter3 = new XMLWriter(new FileWriter
("student3.xml"),format);
xmlWriter3.write(document);
xmlWriter.close();
}
}
解析一个XML文档:
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.DOMReader;
import org.dom4j.io.SAXReader;
import org.xml.sax.SAXException;
public class Dom4jTest2
{
public static void main(String[] args) throws DocumentException,
SAXException, IOException, ParserConfigurationException
{//创建一个解析器
SAXReader saxReader = new SAXReader();
//解析一个具体的文档
Document doc = saxReader.read(new File("student2.xml"));
//得到文档的根元素
Element root = doc.getRootElement();
System.out.println("root element:"+root.getName());
//输出文档中的所有节点
List childList = root.elements();
System.out.println(childList.size());
List childList2 = root.elements("hello");
System.out.println(childList2.size());
Element first = root.element("hello");
System.out.println(first.attributeValue("age"));
//遍历节点的属性
for(Iterator iter= root.elementIterator();iter.hasNext();)
{
Element e = (Element)iter.next();
System.out.println(e.attributeValue("age"));
}
System.out.println("----------------");
DocumentBuilderFactory dbf =
DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
org.w3c.dom.Document document = ((DocumentBuilder) db).parse
(new File("student2.xml"));
DOMReader domReader = new DOMReader();
//将JAXP的Document转换为dom4j的Document
Document d = domReader.read(document);
Element rootElement = d.getRootElement();
System.out.println(rootElement.getName());
}
}
- XML解析( Dom4j 详解)
- dom4j解析xml详解
- dom4j解析xml详解
- 详解XML解析(二)—DOM4J
- Java Dom4j解析XML详解
- java-Dom4j解析XML详解
- XML 解析包dom4j 详解
- dom4j解析xml原理详解
- XML解析(dom4j)
- XML解析(Dom4j)
- dom4j解析xml以及dom4j生成xml详解
- Dom4j方式解析XML乱码问题详解
- Dom4j解析xml(二)
- Dom4j解析xml(二)
- dom4j XML解析(转)
- dom4j解析xml(记录)
- xml解析2(dom4j)
- 解析XML数据(dom4j)
- 推荐十大国外IT网站
- 初涉USB,初学者USB入门总结(3) 数据包阐述
- [ACM] ACM常见错误
- cocos2dx 响应windows键盘事件
- Webkit Painting and Event Flow 绘屏和事件 探讨
- XML解析( Dom4j 详解)
- windows系统上安装与使用Android NDK
- 初涉USB,初学者USB入门总结4,USB通讯设备快速开发
- mac与windows 共享设置
- 初涉USB,初学者USB入门总结(5)USB上位机读写开发
- Android系统移植与调试之------->深入理解Android Sensor系统 (4.0)
- JSP页面打印
- 霜波说测试(1)-----优秀的测试用例
- linux安装mongodb