`
lw671579557
  • 浏览: 104714 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

DOM 操作XML

    博客分类:
  • Xml
 
阅读更多

使用java JDK中的DOM解析xml

import java.io.FileOutputStream;
import java.io.PrintWriter;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
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;

/** DOM生成与解析XML文档 */
public class DomDemo{

	/**
	 * 创建xml文件
	 * @param filePath 文件完整路径
	 */
	public void createXml(String filePath) {
		try {
			DocumentBuilderFactory factory = DocumentBuilderFactory
					.newInstance();
			DocumentBuilder builder = factory.newDocumentBuilder();
			Document document = builder.newDocument();
			Element root = document.createElement("employees");
			document.appendChild(root);
			Element employee = document.createElement("employee");
			Element name = document.createElement("name");
			name.appendChild(document.createTextNode("雨无声"));
			employee.appendChild(name);
			Element sex = document.createElement("sex");
			sex.appendChild(document.createTextNode("m"));
			employee.appendChild(sex);
			Element age = document.createElement("age");
			age.appendChild(document.createTextNode("30"));
			employee.appendChild(age);
			root.appendChild(employee);
			TransformerFactory tf = TransformerFactory.newInstance();
			
			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(filePath));
			StreamResult result = new StreamResult(pw);
			transformer.transform(source, result);
			System.out.println("生成XML文件成功!");
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
	}

	/**
	 * 解析xml,传入完整路径
	 */
	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());
					}
				}
			}
			System.out.println("解析完毕");
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
	}
	
	public static void main(String[] args) {
		DomDemo dd = new DomDemo();
		//dd.createXml("D:\\test.xml");
		
		dd.parserXml("D:\\test.xml");
	}
}

 

分享到:
评论

相关推荐

    DOM读取XML文件

    DOM解析器将整个XML文件加载到内存中,形成一个树形结构,允许开发者通过节点操作来访问和修改XML文档。这种方式的优点在于方便、直观,但缺点是占用内存较大,不适用于处理大型XML文件。 首先,我们需要了解XML的...

    使用DOM读取XML文件

    本文将深入探讨如何使用DOM读取XML文件,并结合提供的标签“源码”和“工具”,提供实用的代码示例和相关知识。 首先,理解DOM的基本概念。DOM将XML文档看作一个由节点组成的树形结构,其中根节点代表整个文档,而...

    【Qt】DOM读取XML文档.rar

    本教程主要关注使用Qt的DOM(Document Object Model)模型来读取XML文档。 DOM是一种树型结构,它将XML文档视为一系列可编程的对象。在Qt中,我们使用`QDomDocument`类来表示整个XML文档,而`QDomElement`、`...

    DOMProject(通过DOM读取XML)

    **DOMProject(通过DOM读取XML)** 在IT领域,XML(eXtensible Markup Language)是一种被广泛用于存储和传输数据的标记语言。它的结构清晰,易于机器和人类阅读,使得XML成为Web服务和应用程序间交换数据的理想...

    dom读取xml与写入xml

    读取XML文件使用DOM时,通常分为以下几个步骤: 1. 加载XML文件:使用特定的API(如JavaScript中的`XMLHttpRequest`或Java的`DocumentBuilderFactory`)加载XML文件到内存中。 2. 解析XML:调用解析器(如Java的`...

    DOM操作XML文档

    学习XML语言很重要的一章节,其中的第八章节,掌握如何用DOM操作XML文档

    DOM操作XML,XPATH技术

    标题"DOM操作XML,XPATH技术"指的是在编程中处理XML文档时,使用Document Object Model (DOM) 和XPath两种主要技术。DOM是一种标准,用于表示XML和HTML文档的树形结构,它允许程序和脚本动态更新、添加、删除和查找...

    vc DOM操作xml,从Tree到Xml,xml到Tree

    在本主题“vc DOM操作xml,从Tree到Xml,xml到Tree”中,我们将深入探讨如何利用VC++(Microsoft的C++编译器)来实现DOM操作XML,并将XML数据与树形控件进行交互。 首先,我们需要了解XML的基本概念。XML...

    DOM操作XML文档向表格添加数据.rar

    总结来说,通过DOM操作XML文档向表格添加数据是一项常见的Web开发任务,它涉及XML文档的读取、解析,以及HTML元素的动态创建和更新。这一过程对于构建交互式和数据驱动的Web应用程序至关重要。通过理解并熟练运用DOM...

    使用DOM解析XML文档

    文档对象模型 节点和节点树 使用DOM加载XML文档 使用DOM访问、创建和修改节点

    java.dom操作xml完整的例子

    在Java中,`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`类是DOM操作的核心。 在这个"java.dom操作xml完整的例子"中,我们可以预见到以下关键知识点: 1. **XML文档的解析**:首先,我们...

    java dom 操作xml

    虽然Java标准库提供了DOM操作的基本功能,但一些第三方库如JDOM、DOM4J提供了更友好的API和额外的功能,可以简化XML操作。 总之,Java DOM提供了一种强大的方式来操作XML,通过理解和熟练运用DOM API,我们可以...

    xml.rar_dom操作xml_java 操作 xml_java xml_sax_xml

    - 相较于DOM,SAX是一种事件驱动的解析器,只在需要时读取XML的一部分,因此内存占用小,适合处理大型XML文件。 - `org.xml.sax`包提供了SAX解析的核心接口,如`Parser`、`ContentHandler`和`Attributes`。 - `...

    Javascript里使用Dom操作Xml_1.docx

    总结,JavaScript中的DOM操作XML涉及到创建、加载、查询和修改XML文档。理解这些属性和方法对于在JavaScript中处理XML数据至关重要。无论是在服务器端还是客户端,都能有效地利用这些技术来与XML数据进行交互。

    DOM_XML.rar_DOM_dom xml_dom xml java_dom解析xml_java解析xml

    DOM解析器读取整个XML文档到内存中,构建一棵由节点组成的树,这些节点代表了XML文档的所有元素、属性、文本和其他结构。 在Java中,`org.w3c.dom`包提供了DOM解析XML的基础接口和类。以下是DOM解析XML的基本步骤:...

    Javascript里使用Dom操作Xml.docx

    Javascript里使用Dom操作Xml.docx

    java dom 解析 xml 实例

    Java DOM 解析 XML 实例 Java DOM 解析 XML 实例是 Java 语言中常用的 XML 解析方法之一,...通过使用 DOM 解析 XML 文档,我们可以轻松地访问和操作 XML 文档中的元素和属性,从而实现了对 XML 文档的解析和处理。

    利用DOM读写XML

    读取XML文档同样分为几个步骤: 1. **加载XML文件**:使用`DOMDocument`的`loadXML`或`load`方法加载XML文件: ```php $doc = new DOMDocument(); $doc-&gt;load('input.xml'); ``` 2. **遍历DOM树**:通过DOM...

    Java DOM 生成XML

    总结一下,Java DOM提供了一套全面的API来处理XML文档,包括创建、修改和读取XML结构。尽管DOM操作相对消耗资源,但其灵活性和强大功能使其成为处理XML的常用工具。对于复杂的XML操作,可以结合使用其他库如JAXB或...

    DOM解析XML应用实例(入门经典案例)

    DOM(Document Object Model)是XML文档的一种解析标准,它提供了一种结构化的表示XML文档的方式,使得开发者可以方便地访问和操作XML文档的各个部分。本教程“DOM解析XML应用实例(入门经典案例)”旨在帮助初学者...

Global site tag (gtag.js) - Google Analytics