如右图所示,将使用Dom方式,创建图一的xml,并解析图二中更为复杂的xml
1.新建一个类,Domdemo.java,代码如下:
package com.test;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import com.inter.XmlDocument;
public class DomDemo implements XmlDocument
{
private Document document;
private String fileName;
public void init() {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
this.document = builder.newDocument();
} catch (ParserConfigurationException e) {
System.out.println(e.getMessage());
}
}
public void createXml(String fileName)
{
Element root = this.document.createElement("employees");
this.document.appendChild(root);
Element employee = this.document.createElement("employee");
Element name = this.document.createElement("name");
name.appendChild(this.document.createTextNode("张三"));
employee.appendChild(name);
Element sex = this.document.createElement("sex");
sex.appendChild(this.document.createTextNode("男"));
employee.appendChild(sex);
Element age = this.document.createElement("age");
age.appendChild(this.document.createTextNode("30"));
employee.appendChild(age); root.appendChild(employee);
TransformerFactory tf = TransformerFactory.newInstance();
try {
Transformer transformer = tf.newTransformer();
DOMSource source = new DOMSource(document);
transformer.setOutputProperty(OutputKeys.ENCODING, "gb2312");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));
StreamResult result = new StreamResult(pw);
transformer.transform(source, result);
System.out.println("创建xml成功");
} catch (TransformerConfigurationException e) {
System.out.println(e.getMessage());
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
} catch (TransformerException e) {
System.out.println(e.getMessage());
}
}
public void parserXml(String fileName)
{
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(fileName);
NodeList employees = document.getChildNodes();
for (int i = 0; i < employees.getLength(); i++) {
Node employee = employees.item(i);
NodeList employeeInfo = employee.getChildNodes();
for (int j = 0; j < employeeInfo.getLength(); j++) {
Node node = employeeInfo.item(j);
NodeList employeeMeta = node.getChildNodes();
for (int k = 0; k < employeeMeta.getLength(); k++) {
System.out.println(employeeMeta.item(k).getNodeName() + ":" + employeeMeta.item(k).getTextContent());
}
}
}
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
} catch (ParserConfigurationException e) {
System.out.println(e.getMessage());
} catch (SAXException e) {
System.out.println(e.getMessage());
} catch (IOException e) {
System.out.println(e.getMessage());
}
System.out.println("------dom方式解析完毕-------");
}
}
2.编写测试类,TestDom.java,代码如下:
public class TestDom
{
public static void main(String[] args)
{
Domdemo dom = new Domdemo();
dom.init();
//创建的xml见图一
dom.createXml("D://employee.xml");
//解析的xml见图二
dom.parseXml("E://employee.xml");
}
}
图一
图二
- 大小: 16.4 KB
- 大小: 18.8 KB
分享到:
相关推荐
DOM解析XML 创建XML
Android 创建与解析XML Dom4j方式
使用dom4j进行解析XML,通过文档助手创建文档节点。向文档节点中添加根元素节点, 向根元素节点上添加子节点
dom4j是一种解析XML文档的开放源代码XML框架。本文介绍如何使用包含在dom4j中的解析器创建并修改XML文档。dom4j API包含一个解析XML文档的工具。本文中将使用这个解析器创建一个示例XML文档,然后使用同一个解析器...
Android 创建与解析XML Dom方式 博客原文:http://blog.csdn.net/sunboy_2050/article/details/7516058
使用 dom4j 解析 XML;dom4j 是一种解析 XML 文档的开放源代码 XML 框架。本文介绍如何使用包含在 dom4j 中的解析器创建并修改 XML 文档。
通过实例与步骤解析说明,能过帮助各位同仁快速掌握dom4j创建与解析xml文档,除此之外,文档还包含了创建与解析xml文档过程中可能出现的异常解决办法、xpath知识与应用和xml元素属性关系示意图,相当不错哦
java dom4j 解析xml文档 使用java操作xml 例如创建 读取 删除 等等
dom4j+xpath 解析和创建 xml 文件的简单实例
对XML的操作,JDOM对XML的解析、创建、修改。DOM4J对XML的解析、创建、修改的实现代码。
NULL 博文链接:https://feargod.iteye.com/blog/1168188
XMLTest.java中创建XML和解析XML示例,另附dom4j资源包
1、XMLDOMDocument类: XML对象文档 ->操作创建或读写(元素、节点、属性、注释)等 2、IXMLDOMNode类:每个元素或节点基本都会有的方法;作为元素和节点的基类调用 3、IXMLDOMAttribute类:就是元素或节点的属性类 4...
解析读写xml文件,创建XML文件的源代码
文档对象模型 节点和节点树 使用DOM加载XML文档 使用DOM访问、创建和修改节点
dom4j创建、修改、解析xml,源码注释完整
* 本类是专门解析XML文件的,主要用于为系统读取自己的配置文件时提供最方便的解析操作 * @author HX * */ public class XmlManager { /** * 得到某节点下某个属性的值 * @param element 要获取属性的...
自己写的使用dom4j解析及创建xml的源码,主要有两个类 XmlTest.java:用于解析及创建xml Book.java 实体类,测试通过可以使用,当然记得要导入dom4j的jar包 // 创建节点 Element newBook = DocumentHelper....
使用dom4j解析xml,适合java入门学习者学习,简单介绍了,xml的节点创建,属性修改
三种方式解析XML 提供创建XML方法 本地三种方式解析 网络三种方式解析 一共7个 需要的下 带文件编码识别 相当强大哦