`
xi5566
  • 浏览: 151772 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JAVA 生成解析XML

阅读更多
package com.hcwy.dao;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;

public class Operate {

	public void BuildXMLDoc() throws IOException, JDOMException {

		// 创建根节点 list;
		Element root = new Element("list");

		// 根节点添加到文档中;
		Document Doc = new Document(root);

		// 此处 for 循环可替换成 遍历 数据库表的结果集操作;
		for (int i = 0; i < 5; i++) {

			// 创建节点 user;
			Element elements = new Element("user");

			// 给 user 节点添加属性 id;
			elements.setAttribute("id", "" + i);

			// 给 user 节点添加子节点并赋值;
			// new Element("name")中的 "name" 替换成表中相应字段,setText("xuehui")中 "xuehui
			// 替换成表中记录值;
			Element name = new Element("name");
			name.setAttribute("id",""+i);
			name.setText("xuehui");
			
			elements.addContent(name);
			elements.addContent(new Element("age").setText("28"));
			elements.addContent(new Element("sex").setText("Male"));

			// 给父节点list添加user子节点;
			root.addContent(elements);

		}
		XMLOutputter XMLOut = new XMLOutputter();

		// 输出 user.xml 文件;
		XMLOut.output(Doc, new FileOutputStream("user.xml"));
	}

	public void jiexi() throws Exception { // 注意这里必须要抛出异常,否则会报错
		SAXBuilder builder = new SAXBuilder();
		Document doc = builder.build(new File("user.xml")); // 导入xml文件,xml文件名取名为test.xml

		Element root = doc.getRootElement(); // 获得根节点 这里是list
		List tempChildren = root.getChildren(); // 获得LIST的子接点user
		for(int i=0;i<tempChildren.size();i++){
			Element temp1 = (Element) tempChildren.get(i); // 以得到第一个user结点为例,注意这里必须要强制转化一下
			System.out.println("userID是"+temp1.getAttribute("id").getValue());
			System.out.println("userName是"+temp1.getChild("name").getText());//取NAME
			Element name=temp1.getChild("name");
			System.out.println("name的ID是-->"+name.getAttribute("id").getValue());
			System.out.println("userAge是"+temp1.getChild("age").getText());//取AGE
			System.out.println("userSex是"+temp1.getChild("sex").getText());//取SEX
//			Element file = temp1.getChild("name"); 如果name里有属性 那么我门先取得NAME 
//			System.out.println("file结点id、z的属性值分别是:id='"
//					+ file.getAttribute("id").getValue() + "' z='"
//					+ file.getAttribute("z").getValue() + "'");然后把name里的东西取出来
			
		}

		
	}
	
	
	
	
	//修改XML
	public void updateXML(){
		SAXBuilder builder = new SAXBuilder();
		try {
			Document doc = builder.build(new File("user.xml"));
			Element root = doc.getRootElement(); // 获得根节点 这里是list
			List tempChildren = root.getChildren(); // 获得LIST的子接点user
			for(int i=0;i<tempChildren.size();i++){
				Element temp1 = (Element) tempChildren.get(i); // 以得到第一个user结点为例,注意这里必须要强制转化一下
				System.out.println("userID是"+temp1.getAttribute("id").getValue());
				System.out.println("userName是"+temp1.getChild("name").getText());//取NAME
				Element name=temp1.getChild("name");
				System.out.println("name的ID是-->"+name.getAttribute("id").getValue());
				System.out.println("userAge是"+temp1.getChild("age").getText());//取AGE
				System.out.println("userSex是"+temp1.getChild("sex").getText());//取SEX
				name.setText("zzzz");
			}
			File f=new File("user.xml");
			if(f.exists()){
				f.delete();
			}
			XMLOutputter XMLOut = new XMLOutputter();
			// 输出 user.xml 文件;
			XMLOut.output(doc, new FileOutputStream("user.xml"));
		} catch (JDOMException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} // 导入xml文件,xml文件名取名为test.xml
	}
	
	
	
	
	
	
	

	public static void main(String[] args) {
		Operate j2x = new Operate();
		/**
		 *这是生成XML文件
		try {
			Operate j2x = new Operate();
			System.out.println("生成 mxl 文件...");
			j2x.BuildXMLDoc();
		} catch (Exception e) {
			e.printStackTrace();
		}
		* 
		 */
		
		
		/**
		 *这是解析XML文件
		Operate j2x = new Operate();
		try {
			j2x.jiexi();
		} catch (Exception e) {
			e.printStackTrace();
		}
		* 
		 */
		j2x.updateXML();
		
	}

}

 

分享到:
评论

相关推荐

    JAVA 解析XML生成XML文档实例

    JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML

    java解析xml动态生成树形菜单结构

    总结起来,实现“java解析xml动态生成树形菜单结构”的项目,需要掌握以下核心知识点: 1. Java的DOM解析XML,构建树形数据结构。 2. 设计和实现无限层级的树形菜单数据模型。 3. 使用`JSTree`库在前端渲染树形菜单...

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

    Java提供了内置的`javax.xml.parsers`包,可以使用`DocumentBuilderFactory`和`DocumentBuilder`来解析XML文件。首先,创建`Document`对象,然后使用`parse()`方法解析XML文件。解析后,你可以通过`...

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

    4. 解析XML:使用Java的DOM或StAX API解析XML,找到占位符并提取数据。 ```java DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder...

    JAVA JAXB 解析XML嵌套子节点为字符串

    使用JAXB解析XML时,我们首先需要创建一个Java类模型,这个模型反映了XML文档的结构。每个XML元素对应一个Java类,类的属性对应元素的属性或子元素。例如,如果XML中有以下结构: ```xml &lt;text&gt;Some text here ...

    java解析xml生成json对象

    在Java编程环境中,XML(可...总的来说,Java解析XML生成JSON对象的能力使得数据在不同平台和应用间无缝交换成为可能。通过学习和使用这样的工具类,开发者可以更高效地处理XML数据,并将其集成到基于JSON的系统中。

    java解析xml字符串

    ### Java解析XML字符串 在给定的代码示例中,我们看到了如何使用JDOM库来解析一个XML字符串,并对其进行操作。下面我们将详细解析这个过程: 1. **初始化XML源**:首先,将XML字符串转化为`StringReader`对象,这...

    JAVA调用webservice并解析xml

    在IT行业中,调用Web服务并解析XML是常见的任务,特别是在Java开发中。Web服务,尤其是基于SOAP(Simple Object Access Protocol)的,提供了一种标准的跨平台、跨语言的数据交换方式。本教程将深入讲解如何在Java...

    Java解析XML的jar包+四种解析方法

    java解析xml的四种方法的比较,还有四种方法所用到的jar包 附带程序例子 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML

    java在线解析xml

    Java在线解析XML是一种常见的编程任务,特别是在处理Web服务、数据交换或者从XML文件中提取信息时。XML(Extensible Markup Language)是一种结构化数据格式,它允许数据以自定义的标签进行组织,使得数据的传输和...

    解析xml,生成java类

    本文将详细介绍如何解析XML并生成对应的Java类,以及使用工具助手来简化这一过程。 一、XML解析原理 1. DOM解析:DOM(Document Object Model)模型将XML文档视为一个树形结构,通过创建一个内存中的文档对象模型...

    java心电图xml解析.zip

    在Java中,有多种方式可以解析XML文档,主要包括DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)。每种方法都有其优缺点,适用于不同的场景。 1. DOM解析:DOM是将整个...

    Java解析和生成XML.pdf

    Java解析和生成XML的知识点主要涵盖了使用JAXB(Java Architecture for XML Binding)框架来实现Java对象与XML(可扩展标记语言)之间的数据转换。JAXB提供了一种便捷的方式,通过注解(Annotation)来实现这一过程...

    java生成xsd,xml示例

    在Java开发中,XML(可扩展...总结起来,Java生成XML和XSD涉及到XML和XSD的基本概念,以及使用JAXB等Java库进行XML操作的技术。在实际项目中,理解并熟练运用这些知识对于处理结构化数据的序列化和反序列化至关重要。

    Java DOM 生成XML

    标签"解析XML和生成XML的必备选择"表明,DOM不仅适用于生成XML,也常用于解析XML文档。解析XML时,`DocumentBuilder`会构建一个DOM树,然后可以通过DOM API查询和修改树中的节点。 总结一下,Java DOM提供了一套...

    Java解析和生成XML

    二、Java生成XML 1. DOM生成:使用DOM模型,可以通过`Document`对象创建XML文档,然后使用`Transformer`将其转换为字符串或写入文件。 ```java Document doc = createDocument(); // 创建Document对象 ...

    java代码pdf解析成xml.rar

    Java代码PDF解析成XML...总的来说,Java PDF解析成XML是一项涉及PDF解析、数据提取和XML生成的技术任务。iTextPDF库提供了解决这个问题的关键工具,但实际的实现需要根据PDF的具体内容和你希望生成的XML结构进行定制。

    java解析xml例子

    本篇文章将深入探讨如何在Java中解析XML,以帮助你理解和实践相关知识。 一、DOM解析器 DOM(Document Object Model)解析器是Java中的一种常用方法,它将整个XML文档加载到内存中,形成一个树形结构。以下是一个...

    freemarker生成xml示例

    1. **数据模型(Model)**:这是你要生成XML所依赖的数据,可以是Java对象、Map或者其他集合类型。例如,你可以创建一个包含多个元素的列表,每个元素都有属性如`name`、`age`等。 ```java List&lt;Person&gt; persons = ...

    java 利用Xstream注解生成和解析xml

    解析XML回Java对象同样简单,只需使用`fromXML()`方法: ```java String xmlInput = "&lt;person id='1'&gt;&lt;firstName&gt;John&lt;/firstName&gt;&lt;lastName&gt;Doe&lt;/lastName&gt;&lt;/person&gt;"; Person parsedPerson = (Person) xstream....

Global site tag (gtag.js) - Google Analytics