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

java基础之(二) XML的写入和解析

阅读更多
超级简单操作xml 纯javaAPI 不借助第三方.
不善于表达,直接贴代码。
package io;

import java.io.File;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

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;
import org.w3c.dom.Text;

import util.DbUtils;

public class XML {
	public static final String SAVE_PATH = "d://student.xml";
	
	/**
	 * 添加节点
	 * @param doc 文档
	 * @param parent 父节点
	 * @param tagName 节点名称
	 * @param data 节点内容
	 * @return
	 */
	private static Element addElement(Document doc, Node parent,
			String tagName, String data) {
		Element element = doc.createElement(tagName);
		if (null != data) {
			Text text = doc.createTextNode(data);
			element.appendChild(text);
		}
		if (null != parent) {
			parent.appendChild(element);

		}
		return element;
	}
	/**
	 * 文档解析器
	 * @return
	 * @throws Exception
	 */
	private static DocumentBuilder getBuilder()throws Exception{
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		return factory.newDocumentBuilder();
	}
	/**
	 * 写XML
	 * @param savePath
	 * @throws Exception
	 */
	public static void writer(String savePath) throws Exception {
		// 创建document
		
		Document doc = getBuilder().newDocument();
		Element root = addElement(doc, doc, "students", null);

		// 写入document
		String sql = "select * from student";
		Connection conn = DbUtils.getConn();
		Statement state = conn.createStatement();
		ResultSet rs = state.executeQuery(sql);
		while (rs.next()) {
			Element student = addElement(doc, root, "student", null);
			addElement(doc, student, "id", rs.getString("id"));
			addElement(doc, student, "name", rs.getString("name"));
			addElement(doc, student, "age", rs.getString("age"));
			addElement(doc, student, "code", rs.getString("code"));
			addElement(doc, student, "sex", rs.getString("sex"));
			addElement(doc, student, "political", rs.getString("political"));
			addElement(doc, student, "origin", rs.getString("origin"));
			addElement(doc, student, "professional", rs
					.getString("professional"));
		}
		DbUtils.close(rs, state, conn);

		// 输出document
		TransformerFactory tf = TransformerFactory.newInstance();
		Transformer transformer = tf.newTransformer();
		//设定格式
		transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
		transformer.setOutputProperty(OutputKeys.INDENT, "yes");
		
		//转换器
		StreamResult result = new StreamResult(new FileOutputStream(savePath));
		DOMSource source = new DOMSource(doc);
		transformer.transform(source, result);

	}
	/**
	 * 读XML
	 * @param readPath
	 * @throws Exception
	 */
	public static void read(String readPath)throws Exception{
		Document doc=getBuilder().parse(new File(readPath));
		Element root=doc.getDocumentElement();
		NodeList list=root.getChildNodes();
		for (int i=0;i<list.getLength();i++ ) {
			Node node=list.item(i);
			if(node.getNodeType()==Node.ELEMENT_NODE){
				NodeList childlist=node.getChildNodes();
				for (int j = 0; j < childlist.getLength(); j++) {
					Node childNode=childlist.item(j);
					System.out.println(childNode.getNodeName()+":"+childNode.getTextContent());
					
				}
			}
		}
	}
	public static void main(String[] args) throws Exception {
		//XML.writer(SAVE_PATH);
		XML.read(SAVE_PATH);
	}
}

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    java实现xml解析word文档代码实现

    Java 实现 XML 解析 Word 文档代码实现 基于给定的文件信息,我们可以总结出以下知识点: 1. Java 实现 XML 解析 Word 文档 ...使用 Java 实现 XML 解析 Word 文档可以使得 Word 文档的动态写入变得更加灵活和方便。

    JavaXml.zip_java xml_javaXML_java解析xml_文档解析

    在Java中,有多种方式可以解析XML文档,包括DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)。下面我们将详细探讨这些解析方法以及相关的API。 1. DOM解析器:DOM解析器...

    java读取和写入xml文件

    XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,广泛应用于软件开发、Web服务和数据交换等领域。在Java中,处理XML文件主要有四种方式:DOM(Document Object Model)、SAX(Simple API for...

    Android XML 解析 写入

    XML写入通常使用`TransformerFactory`和`Transformer`类完成。以下是一个简单的例子: ```java TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = ...

    java xml 解析包

    Java XML解析包主要指的是用于处理XML(eXtensible Markup Language)文档的库,它使得在Java程序中读取、写入、修改和操作XML变得简单。本篇将详细介绍使用Java进行XML解析的关键知识点,以dom4j-1.6.1为例。 1. *...

    java代码pdf解析成xml.rar

    Java代码PDF解析成XML是一项技术任务,涉及到Java编程语言、PDF文档处理和XML数据格式转换。在这个场景中,我们主要关注如何使用Java库iTextPDF将PDF文档中的内容解析为XML结构。 首先,我们需要理解PDF(Portable ...

    Java解析和生成XML

    本篇文章将详细探讨Java如何解析和生成XML文档。 一、Java解析XML 1. DOM解析:Document Object Model(DOM)是XML文档的一种树形表示方式。Java中的`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom....

    利用Java jdk(dom)解析和写入XML文件

    理解并熟练掌握DOM解析和写入XML是Java开发人员的基本技能之一,特别是在处理配置文件、数据交换或持久化数据时。尽管DOM提供了强大的灵活性,但要注意其内存消耗较高,对于大型XML文件,可能需要考虑其他解析方法,...

    java基础之解析xml

    DOM4J是Java中解析XML的首选工具之一,它提供了灵活且功能强大的API来读取、写入、修改和操作XML文档。DOM4J基于Document Object Model (DOM) API,但它的实现更加轻量级,易于理解和使用。 首先,让我们了解XML的...

    java在线解析xml

    以上就是在Java中在线解析XML的基本概念和示例,根据实际需求,可以选择适合的解析器。在处理sinaApps这样的数据时,可能涉及从XML响应中提取应用信息,如应用ID、名称、描述等,这时可以利用这些解析方法将XML数据...

    dom4j 解析写入xml

    1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件

    java XML解析方式实现自动生成word文档

    本篇文章将详细探讨如何利用Java和XML解析来自动化创建Word文档。 首先,我们需要了解XML的结构。XML(Extensible Markup Language)是一种标记语言,它允许我们以结构化的方式存储数据。在生成Word文档时,我们...

    解析excel写入xml

    本篇将详细探讨如何解析Excel文件并将其内容写入到XML中。 首先,我们要理解Excel文件的结构。Excel文件通常是二进制的`.xlsx`格式,它由多个基于Open XML标准的XML文件组成,存储在一个压缩的ZIP文件内。我们可以...

    解析xml和本地解析xml

    常见的本地解析XML的库有Java的DOM和SAX,Python的ElementTree,JavaScript的DOMParser等。 4. CLOB字段与XML数据: CLOB(Character Large Object)是数据库中用于存储大量字符数据的类型,常用于存储XML文档。当...

    java生成指定格式的xml和解析对于的xml

    总结来说,这个项目涵盖了Java生成XML和解析XML的核心技术。通过DOM、SAX或StAX生成XML字符串,再利用JAXB结合`@XmlRootElement`注解解析XML并转换成Map。了解和掌握这些技术对于任何Java开发者在处理XML数据时都至...

    Java 使用Tcpip 发送XML文件

    3. **XML读写**:在Java中,我们可以使用如JAXB(Java Architecture for XML Binding)或者DOM、SAX、StAX等API来读取和写入XML文件。JAXB允许我们将Java对象自动转换为XML,反之亦然,非常方便。DOM API则将XML文档...

    java jdom解析xml

    Java JDOM解析XML是Java开发中处理XML文档的一种方法,JDOM全称为Java Document Object Model,它是一个基于Java语言的API,用于创建、修改和读取XML文档。JDOM为XML处理提供了一种高效且方便的解决方案,尤其适用于...

    java解析XML详解

    Java的XML解析技术可以方便地读取和写入XML文件,实现数据的标准化传输。 2. **配置文件管理**:许多Java应用程序使用XML作为配置文件的格式。通过解析XML,可以动态加载和修改配置参数,提高应用程序的灵活性。 ...

    java 解析、生成 Excel XML 四个实例

    本文将深入探讨四个使用Java解析和生成Excel及XML的实例,旨在帮助开发者掌握相关技能。 实例一:解析Excel文件 使用Apache POI库是Java中解析Excel文件的常见方式。POI提供了HSSF(旧版Excel .xls格式)和XSSF(新...

    java解析xml生成json对象

    本项目提供的"解析xml---xml文件转json对象"是一个Java工具类,用于将XML文件解析成JSON对象,便于处理和操作。要使用这个工具,你需要遵循以下步骤: 1. **导入项目**:首先,下载提供的压缩包并解压。将解压后的...

Global site tag (gtag.js) - Google Analytics