`
ujs_lifazhu
  • 浏览: 34231 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java xml

    博客分类:
  • java
阅读更多
package com.lifz.server;

import java.io.File;
import java.io.IOException;

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.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
import org.xml.sax.SAXException;

public class XmlServer {
	public static void main(String[] args) {
		String filePath = "D:\\Users\\lifazhu\\Desktop\\xmltest\\Teams.xml";
		readXml(filePath);
	}
	private static void readXml(String filePath) {
		try {
			DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
			DocumentBuilder dBuilder = dbf.newDocumentBuilder();
			Document doc = dBuilder.parse(filePath);
			doc.normalize();
			Element root = doc.getDocumentElement();
			
			addNode(doc);	// 添加节点
			if(doc != null) printNode(root); // 打印节点
			createXml(doc) ; // 创建xml
			deleteNode(doc);// 删除节点
		} catch (ParserConfigurationException e) {
			e.printStackTrace();
		} catch (SAXException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	private static void createXml(Document doc) {
		try {
			TransformerFactory trFactory = TransformerFactory.newInstance();
			Transformer  tr = trFactory.newTransformer();
			doc.normalize();
			DOMSource source = new DOMSource(doc);
			String outFile = "D:\\Users\\lifazhu\\Desktop\\xmltest\\OutTeams.xml";
			StreamResult result = new StreamResult(new File(outFile));
			tr.setOutputProperty(OutputKeys.ENCODING, "utf-8");  
			tr.setOutputProperty(OutputKeys.INDENT,"yes");
			tr.transform(source, result);
		} catch (TransformerConfigurationException e) {
			e.printStackTrace();
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
		} catch (TransformerFactoryConfigurationError e) {
			e.printStackTrace();
		} catch (TransformerException e) {
			e.printStackTrace();
		}

	}

	private static void printNode(Element root) {
		NodeList children = root.getChildNodes();
		NamedNodeMap attr = root.getAttributes();
		int r = children.getLength();
		if (attr != null) {
			System.out.print("<" + root.getNodeName());
			for (int i = 0; i < attr.getLength(); i++) {
				System.out.println(" " + attr.item(i).getNodeName() + "=" + attr.item(i).getNodeValue());
			}
			System.out.print(">");
		}else {
			System.out.println("<"+root.getNodeName()+">");
		}

		if(root.hasChildNodes()){
			for (int i = 0; i < r ;i++) {
				if(children.item(i).getNodeType() == org.w3c.dom.Node.ELEMENT_NODE){
					printNode((Element) children.item(i));
				}else if(children.item(i).getNodeType() == org.w3c.dom.Node.TEXT_NODE){
					System.out.println(children.item(i).getNodeValue());
				}
			}
			System.out.println("</"+root.getNodeName() + ">");
		}
		
	}
	
	private static void addNode(Document doc) {
		Element root = doc.getDocumentElement();
		
		Element newChild = doc.createElement("Team");
		
		Element e_TeamName = doc.createElement("TeamName"); 
		Text t_TeamName = doc.createTextNode("AC Milan2");
		e_TeamName.appendChild(t_TeamName);
		
		Element e_Countary = doc.createElement("Countary"); 
		Text t_Countary = doc.createTextNode("Italy");
		e_Countary.appendChild(t_Countary);
		
		Element e_Member = doc.createElement("Member"); 
		Text t_Member = doc.createTextNode("Pippo");
		e_Member.appendChild(t_Member);
		
		Attr attr_Age = doc.createAttribute("Age");
		attr_Age.setNodeValue("32");
		Attr attr_Sex = doc.createAttribute("Sex");
		attr_Sex.setNodeValue("female");
		
		e_Member.setAttributeNode(attr_Age);
		e_Member.setAttributeNode(attr_Sex);
		
		newChild.appendChild(e_TeamName);
		newChild.appendChild(e_Countary);
		newChild.appendChild(e_Member);
		
		root.appendChild(newChild);	// 添加节点
	}
	
	private static void deleteNode(Document doc) {
		Element root = doc.getDocumentElement();
		Node oldChild = root.getLastChild();
		root.removeChild(oldChild);
		System.out.println("开始打印删除节点后的Node");
		printNode(root);
	}
}
分享到:
评论

相关推荐

    java xml解析工具类 java xml解析工具类

    java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析...

    java xml和map互转

    在Java编程中,XML(可扩展标记语言)是一种用于存储和传输数据的标准化格式,而Map是Java集合框架中的一个重要接口,它提供了键值对的数据结构。将XML与Map进行互转是常见的需求,特别是在处理配置文件或者进行数据...

    java XML转成LIST可以转成指定的类数组

    在Java编程中,XML(eXtensible Markup Language)是一种常用的数据交换格式,它结构清晰、易于阅读,常用于存储和传输数据。当处理XML文件时,有时我们需要将其内容转换为Java对象,如List,以便于操作和处理。本篇...

    Java XML编程指南

    Java XML编程指南旨在帮助开发者掌握在Java环境中处理XML(可扩展标记语言)的技能。XML是一种通用的数据交换格式,常用于存储和传输结构化数据。本指南将深入探讨如何在Java应用程序中有效地读取、解析、创建和操作...

    Java Xml 编程指南书籍源码

    Java XML 编程指南书籍源码是一份宝贵的资源,它涵盖了使用Java进行XML处理的各种核心技术和实践。XML(可扩展标记语言)作为一种数据交换和存储格式,在软件开发中扮演着重要角色,尤其是在分布式系统和Web服务中。...

    java xml编程指南

    Java XML编程指南主要涵盖的是如何在Java环境中处理XML(可扩展标记语言)文档的技术和方法。XML作为一种数据交换和存储格式,广泛应用于不同系统之间的数据交互,如Web服务、配置文件、数据序列化等。本指南将深入...

    java xml 解析包

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

    java XML 编程指南

    Java XML编程指南主要涵盖的是如何在Java环境中处理XML(可扩展标记语言)文档的技术和实践。XML作为一种数据交换和存储格式,在Web服务、配置文件、数据序列化等领域广泛应用。本指南将深入探讨Java与XML的集成,...

    XMLUtil java XML orm toolkit

    XMLUtil 是一个基于Java的XML对象关系映射(ORM)工具包,它的主要目标是简化XML数据与Java对象之间的交互。ORM技术的核心理念是通过映射机制将数据库中的数据自动转化为对象,反之亦然,而XMLUtil则是在XML文档与...

    javaxml,xsl,html文件转换[定义].pdf

    Java 中的 XML、XSL 处理 在 Java 中,可以使用多种方式来处理 XML 和 XSL 文件。其中,javax.xml.parsers 和 javax.xml.transform包提供了对 XML 和 XSL 的支持。 Transform 例程 下面是一个简单的 Transform ...

    javaxml,xsl,html文件转换.pdf

    在 Java 中,我们可以使用 javax.xml.parsers.DocumentBuilderFactory 和 javax.xml.transform.TransformerFactory 来实现 XML 文件的解析和转换。DocumentBuilderFactory 用于创建一个 DocumentBuilder 对象,该...

    Java xml转化为map

    在Java开发中,XML(eXtensible Markup Language)是一种常用的数据交换格式,特别是在与Web服务交互时。当从Web服务接收到XML响应时,通常需要将其解析为更便于操作的数据结构,如Map。Map是一种键值对集合,能够...

    Java-xml.rar_XML java_java xml_javaXML.rar_javaxml.r_xml 网站

    此外,"javaxml.r_xml"和"javaxml.r"标签可能指的是Java的JAXB框架,这是一个用于XML绑定的Java标准,可以自动将Java对象映射为XML文档,反之亦然。这大大简化了处理XML数据的过程,尤其是在构建Web服务或需要与XML...

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

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

    Java XML电子书_5

    Java XML电子书_5,全部发完,谢谢

    JavaXml.zip_java xml_javaXML_java解析xml_文档解析

    Java XML技术是Java平台上的一个核心特性,它用于处理XML(可扩展标记语言)文档,XML作为一种数据交换格式,广泛应用于各种系统之间的数据传输。在Java中,有多种方式可以解析XML文档,包括DOM(Document Object ...

    java xml.java操作XML文档

    Java XML API是Java平台上的标准库,用于处理XML(可扩展标记语言)文档。XML是一种通用的数据交换格式,常用于存储结构化数据。在Java中,我们可以通过一系列的API来读取、写入、解析和操作XML文档。这些API包括DOM...

    javaXML.rar_Javaxml开发

    Java XML(Javaxml)是Java平台上的一个关键组件,用于处理XML(eXtensible Markup Language)数据。XML是一种标记语言,广泛用于数据交换、配置文件和文档存储。Java XML API提供了各种类和接口,使得开发者能够...

Global site tag (gtag.js) - Google Analytics