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

Java读写xml(对简单关系,无需中间模型)

    博客分类:
  • xml
 
阅读更多
import java.io.File;
import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlRootElement;

public class test2 {

	public static void main(String[] args) {
		write();

		read();
	}

	public static void write() {
		try {
			JAXBContext jc = JAXBContext.newInstance(stus.class);
			Marshaller u = jc.createMarshaller();

			stus stus = new stus();
			stus.stu = new ArrayList<stu>();

			stu stu = new stu();
			stu.pet = new ArrayList<String>();
			stu.pet.add("y1");
			stu.pet.add("x2");
			stus.stu.add(stu);

			stu = new stu();
			stu.pet = new ArrayList<String>();
			stu.pet.add("y2");
			stu.pet.add("x1");
			stu.pet.add("z3");
			stus.stu.add(stu);

			u.marshal(stus, new File("d:\\2.xml"));
		} catch (JAXBException e) {
			e.printStackTrace();
		}
	}

	public static void read() {
		try {
			JAXBContext jc = JAXBContext.newInstance(stus.class);
			Unmarshaller u = jc.createUnmarshaller();

			stus stus = (stus) u.unmarshal(new File("d:\\2.xml"));

			for (stu stu : stus.stu) {
				System.out.println(stu.pet);
			}
		} catch (JAXBException e) {
			e.printStackTrace();
		}
	}
}

@XmlRootElement
class stus {
	public List<stu> stu;
}

class stu {
	public List<String> pet;
}

说明:

1、java读写xml时,java中对象结构可以跟xml中的对象结构完全一致。

2、java中的对象类只需要基本的包含结构,不需要依赖任何方法。 

 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<stus>
	<stu>
		<pet>y1</pet>
		<pet>x2</pet>
	</stu>
	<stu>
		<pet>y2</pet>
		<pet>x1</pet>
		<pet>z3</pet>
	</stu>
</stus>

 

输出结果:

[y1, x2]
[y2, x1, z3]

-------------------------------------------------------------------------------

 

 

stus/stu类中的List也可以初始化,于是代码如下:

 

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlRootElement;

public class test2 {

	public static void main(String[] args) {
		write();

		read();
	}

	public static void write() {
		try {
			JAXBContext jc = JAXBContext.newInstance(stus.class);
			Marshaller u = jc.createMarshaller();

			stus stus = new stus();
			// stus.stu = new ArrayList<stu>();

			stu stu = new stu();
			// stu.pet = new ArrayList<String>();
			stu.pet.add("y1");
			stu.pet.add("x2");
			stus.stu.add(stu);

			stu = new stu();
			// stu.pet = new ArrayList<String>();
			stu.pet.add("y2");
			stu.pet.add("x1");
			stu.pet.add("z3");
			stus.stu.add(stu);

			u.marshal(stus, new File("d:\\2.xml"));
		} catch (JAXBException e) {
			e.printStackTrace();
		}
	}

	public static void read() {
		try {
			JAXBContext jc = JAXBContext.newInstance(stus.class);
			Unmarshaller u = jc.createUnmarshaller();

			stus stus = (stus) u.unmarshal(new File("d:\\2.xml"));

			for (stu stu : stus.stu) {
				System.out.println(stu.pet);
			}
		} catch (JAXBException e) {
			e.printStackTrace();
		}
	}
}

@XmlRootElement
class stus {
	public List<stu> stu = new ArrayList<stu>();
}

class stu {
	public List<String> pet = new ArrayList<String>();
}

 

分享到:
评论

相关推荐

    Java读写xml java 读写xml文件操作, 简单易懂

    ### Java读写XML文件操作详解 在现代软件开发中,XML(可扩展标记语言)是一种广泛使用的数据交换格式,尤其在处理配置文件、数据存储以及跨平台数据交换时显得尤为重要。Java提供了多种读写XML文件的方法,包括SAX...

    java读写xml文件的方法

    ### Java读写XML文件的方法详解 #### 一、概述 在Java编程中,XML(Extensible Markup Language,可扩展标记语言)是一种广泛使用的数据交换格式。由于其良好的跨平台特性和自描述性,使得XML成为了许多应用程序...

    Java与XML读写之DOM篇

    下面将详细阐述DOM模型、解析过程以及如何在Java中使用DOM进行XML读写。 DOM模型的核心概念是节点(Node)。XML文档的每个部分——元素(Element)、属性(Attribute)、文本(Text)等都被表示为一个节点对象。DOM...

    c#和java读写xml辅助工具

    综上所述,无论是在C#还是Java中,都有多种高效且灵活的方法来读写XML文件。选择哪种方法取决于具体的需求,如文件大小、性能要求、代码简洁性等。使用适当的辅助工具,可以显著提高开发效率并降低出错概率。在实际...

    XML.rar_XML java_java call_java xml_xml 读写_xml读写 java

    至于“xml读写_java”,Java提供了多种方式来读写XML文件。使用DOM解析器,可以创建DocumentBuilder实例,然后使用parse()方法解析XML文件得到Document对象,再通过getElementsByTagname()等方法获取元素,最后用...

    java读写xml文件

    本示例中,我们关注的是JDOM库,它为XML文档提供了简单而直接的API,使得读写XML文件变得更加方便。下面我们将详细探讨如何使用JDOM进行XML文件的操作。 首先,为了读取XML文件,我们需要引入JDOM库。在Java项目中...

    Java读写xml文档

    XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,它以其结构化、自解释性和易于解析的特点广泛应用于软件...实践是学习的最佳途径,尝试编写读写XML的程序,将有助于你更好地掌握DOM4J的用法。

    用java读写xml文件

    ### 使用Java进行XML文件的读写 #### 一、引言 XML(Extensible Markup Language,可扩展标记语言)是一种非常流行的用于存储和传输数据的标准格式。它具有良好的跨平台特性,易于理解和处理,因此在数据交换场景中...

    java操纵xml文件的读写,并根据xml生成树型菜单

    ### Java操作XML文件读写与树型...通过上述分析,我们不仅了解了如何使用Java和JDOM库读写XML文件,还探讨了基于XML数据生成树型菜单的基本思路。这对于开发需要处理复杂结构化数据的应用程序来说是非常有用的技能。

    java_rean_writer_xml.rar_JSP读写XML_XML java_java Writer xml_java

    在Java Web开发中,XML...总之,JSP中读写XML文件是常见的需求,通过DOM和SAX解析器,以及JavaBean封装,我们可以方便地处理XML数据。同时,了解XML与SOAP在Web服务中的应用,也是提升Java Web开发能力的重要一环。

    DOM、SAX、JDOM、DOM4J读写xml文档

    JDOM是Java特有的XML处理库,它提供了一个简单易用的API,介于DOM和SAX之间。JDOM将XML映射为Java对象,但比DOM更轻量级,解析速度也更快。 1. **JDOM读取XML**:使用`org.jdom2.input.SAXBuilder`解析XML,然后...

    Java与XML数据绑定

    Java与XML数据绑定是将Java对象与XML文档之间的映射关系进行自动化处理的一种技术,它极大地简化了在Java应用中处理XML数据的工作流程。在Java世界中,JAXB(Java Architecture for XML Binding)是Java EE平台的一...

    Java xml 文档读写

    在IT行业中,XML(eXtensible Markup Language)是一种用于存储和传输数据的标准化格式,尤其在Java应用程序中,XML的读写操作是常见的数据处理任务。本篇将深入探讨Java中XML文档的读写方法,包括直接读写、DOM...

    java四种xml读写demo

    本文将深入探讨Java中处理XML的四种常见方法:DOM(Document Object Model)、SAX(Simple API for XML)、StAX(Streaming API for XML)以及JAXB(Java Architecture for XML Binding)。我们将通过具体的代码示例...

    java and xml 3rd edition 3

    Java作为一种多平台、面向对象的编程语言,提供了丰富的API和库来支持XML的处理,例如DOM(文档对象模型)、SAX(简单API for XML)和StAX(流式API for XML)等解析器,以及JAXB(Java架构绑定)和JDOM等对象模型。...

    java创建xml对象

    本项目的核心目标就是实现这一功能,使得对XML文档的读写操作变得简单易行。 XML(eXtensible Markup Language)是一种标记语言,用于存储和传输数据,它具有结构化、自解释性,并且适用于跨平台通信。在Java中,...

    Java+XML通讯录

    反之,当用户对通讯录进行操作时,Java程序也会更新XML文件以保持数据的一致性。 为了实现Java与XML之间的交互,开发者可能使用了Java API for XML Processing (JAXP) 或者DOM4J等库。JAXP提供了解析和生成XML文档...

    java读写xml

    本篇文章将深入探讨如何在Java中进行XML的读写操作。 一、XML解析 1. DOM解析器:DOM(Document Object Model)是W3C推荐的一种解析XML的标准方法。它将整个XML文档加载到内存中,形成一个树形结构,允许开发者...

    Java更新XML的四种常用方法简介

    直接读写XML效率低,但结构简单;XmlDocument类是特定解析器提供的,不通用;Transformer接口在DOM Level 2以上可用,通用但可能需要配置;DOM Level 3的LS接口则需要较新的解析器支持。选择哪种方法取决于项目需求...

Global site tag (gtag.js) - Google Analytics