`
Before_Morning
  • 浏览: 36878 次
文章分类
社区版块
存档分类
最新评论

XML解析----JDom解析XML

 
阅读更多

目前,比较流行的解析XML的技术有,JDOM、DOM4J、XQUERY等。本篇文档,主要是使用JDOM来实现对XML文档的解析。

首先,要进行JDOM解析,必须先在项目中导入相关的jar包:

1、导入jar包

2、创建XML文件

3、对xml文件进行解析和更新

贴出代码为:

package com.jjyy.jdom.parse;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;

import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
import org.junit.Before;
import org.junit.Test;

/**
 * Jdom解析xml
 * 
 * @author JiangYu
 * 
 */
public class JDomParseDemo {

	private String name;

	@Before
	public void getLocation() {
		name = System.getProperty("user.dir") + "\\src\\computer.xml";
	}

	@Test
	public void testCreate() {
		createXML(name);
	}

	@Test
	public void testParserAndUpdate() {
		parserAndUpdate(name);
	}

	/**
	 * 创建xml文件
	 */
	public static void createXML(String name) {
		try {
			// 创建节点
			Element rootElement = new Element("computer");
			Element priceElement = new Element("price");
			priceElement.setText("5000");
			// 设置属性
			priceElement.setAttribute("way", "$");

			Element hardwareEle = new Element("hardware");
			Element screenElem = new Element("screen");
			screenElem.setText("samsung");
			hardwareEle.addContent(screenElem);

			// 为父节点添加子元素
			rootElement.addContent(priceElement);
			rootElement.addContent(hardwareEle);
			// 根据节点创建Document
			Document document = new Document(rootElement);
			// 将文档写出到硬盘
			// 创建输出格式 pretty适合阅读 compact适合传输
			Format format = Format.getPrettyFormat();
			format.setEncoding("utf-8");
			// 创建输出对象
			// 创建输出对象
			XMLOutputter xmlOutputter = new XMLOutputter(format);
			// 写出
			xmlOutputter.output(document, new FileOutputStream(name));
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	/**
	 * 解析并修改文档
	 * 
	 * @param name
	 * @throws JDOMException
	 * @throws IOException
	 */
	public static void parserAndUpdate(String name) {
		try {
			// 创建JDOm的解析器
			SAXBuilder saxBuilder = new SAXBuilder();
			// 创建文档对象模型
			InputStream is = new FileInputStream(name);
			Document document = saxBuilder.build(is);
			// 获取根节点
			Element rootElement = document.getRootElement();
			// 获取指定的子节点
			Element priceElement = rootElement.getChild("price");
			// 获取节点的文本内容
			System.out.println(priceElement.getText());
			System.out.println(priceElement.getAttributeValue("way"));
			// 获取screen
			Element screenEle = rootElement.getChild("hardware").getChild("screen");
			System.out.println(screenEle.getText());

			// 不常用
			List<Element> list = rootElement.getChildren();
			System.out.println(list.size());

			rootElement.getContent();// 不需要去看 了解下就型了
			/** ************修改获取到的节点的信息*******都是在内存中修改的********* */
			// 修改属性信息
			priceElement.setAttribute("way", "RMB");
			// 新增一个属性
			Attribute abcdAttr = new Attribute("real", "yes");
			priceElement.setAttribute(abcdAttr);
			// 添加一个节点
			Element softwareElement = new Element("software");
			softwareElement.setText("softWare");
			rootElement.addContent(softwareElement);
			// 添加文本节点(当本节点已经存在别的节点,如果在使用setText会将以前的覆盖掉)
			// rootElement.addContent("你是一个坏人");
			/** ******************将内存中的信息写会硬盘********************** */
			// 创建输出的格式 pretty适合阅读 compact适合传输
			Format format = Format.getPrettyFormat();
			format.setEncoding("utf-8");
			// 创建输出对象
			XMLOutputter xmlOutputter = new XMLOutputter(format);
			// 写出
			xmlOutputter.output(document, new FileOutputStream(name));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}


分享到:
评论

相关推荐

    jdom-1.1.zip jdom-1.1.jar jdom.jar jdom库 jdom操作xml

    对于XML解析,JDOM提供了两种方式:SAX(Simple API for XML)和DOM(Document Object Model)。SAX是一种事件驱动的解析器,适用于处理大型XML文件,因为它不会一次性加载整个文档到内存。DOM则是基于树的模型,会...

    XML解析-dom4j.jar-jdom.jar

    在Java编程中,解析XML文档通常需要借助于特定的库,如dom4j和jdom。这两个库都是Java平台上处理XML的优秀选择。 dom4j是一个功能强大的开源XML处理库,提供了灵活且高效的API。它不仅支持DOM模型,还支持SAX...

    基于java的开发源码-用jdom解析xml.zip

    基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发...

    jdom-1.0,jdom解析xml

    **JDOM解析XML详解** XML(Extensible Markup Language)是一种用于标记数据的标准化语言,广泛应用于数据交换、配置文件和Web服务等领域。JDOM是Java领域中专门处理XML的一个库,它提供了一种高效且方便的方式来...

    jdom-1.1.zip_java jdom_jdom-1.0.jar包_jdom-1.1_jdom-1.1.1.tar.gz

    在实际开发中,使用JDOM可以方便地解析XML文档,例如: 1. **读取XML**:使用`SAXBuilder`或`DOMBuilder`类来读取XML文件,并将其转换为JDOM的`Element`对象。 2. **创建XML**:通过`Element`、`Attribute`等类可以...

    XML解析工具--jdom相关资料

    标题中提到的"XML解析工具--jdom相关资料",主要涵盖了JDOM库的使用和相关实例。JDOM的核心思想是将XML文档转换为一个内存中的树形结构,允许开发者通过Java对象模型来操作XML数据。以下是JDOM的一些关键知识点: 1...

    使用JDOM解析XML文件

    本篇文章将深入探讨如何使用JDOM解析XML文件。 首先,我们需要理解JDOM的基本结构。JDOM通过Document对象表示整个XML文档,Element代表XML元素,Attribute表示元素属性,Text表示元素内的文本内容。这些类构成了...

    XML解析技术-JDOM解析.doc

    本文将深入探讨JDOM解析XML的基本原理、步骤以及实际应用。 JDOM的主要优点在于它完全基于Java,因此它能够充分利用Java的面向对象特性,使得XML处理更加直观和方便。与DOM(Document Object Model)标准库相比,...

    XML四种解析方式------DOM SAX JDOM DOM4J

    JDOM是Java特有的XML解析库,它提供了更符合Java习惯的API来操作XML。与DOM类似,JDOM也创建一个文档对象模型,但它的设计更简洁,易于使用。相比DOM,JDOM的性能稍好,因为它减少了对象创建和内存使用,但对大型XML...

    Jdom-xml解析

    **二、JDOM解析XML** 1. **SAXBuilder**:使用SAXBuilder可以快速地从XML文件构建一个Document对象。SAXBuilder是基于事件驱动的SAX解析器,它不加载整个文档到内存,适合处理大型XML文件。 ```java import org....

    java jdom解析xml

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

    jdom-2.0_6.zip

    《JDOM 2.0.6:解析与构建XML文档的利器》 JDOM,全称为Java Document Object Model,是一个专为Java设计的XML处理库。JDOM 2.0.6是该库的一个版本,提供了高效且方便的方式来创建、访问和修改XML文档。这个压缩包...

    jdom-1.1.3.jar包用于解析XML文件

    使用Jdom.jar包解析XML文件,JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。JDOM直接为JAVA编程服务。它利用更为强有力的JAVA语言的诸多特性(方法重载、集合...

    JDOM-XML解析技术

    在处理XML数据时,有多种解析方法,其中JDOM是Java平台上的一个流行的XML解析库,它提供了一种相对简单且性能良好的方式来处理XML文档。本文将深入探讨JDOM技术及其在XML解析中的应用。 ### 1. JDOM简介 JDOM是...

    jdom 读取XML 文件

    使用JDOM,我们可以通过API操作这些节点来实现对XML的解析和操作。 要读取XML文件,首先需要在项目中引入JDOM库。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.jdom ...

    jdom-test-1.1.zip_Java Test_java 操作xml_jdom_jdom xml_xml java jd

    1. **XML解析**:JDOM通过`SAXBuilder`或`DOMBuilder`类来解析XML文件。`SAXBuilder`基于事件驱动,适用于大型XML文件,而`DOMBuilder`则构建整个文档对象模型,适合小型文件。解析后,我们可以得到`Document`对象,...

    jdom-contrib-1.0.zjip

    JDOM是Java中处理XML文档的一个流行库,它提供了一种方便的方式来创建、修改和解析XML文档。然而,JDOM的标准库并不直接支持XPath,XPath是一种强大的语言,用于在XML文档中定位节点。为了在JDOM中利用XPath的功能,...

    用jdom解析xml

    **Java与XML:JDOM解析XML的详细指南** 在Java编程中,XML(eXtensible Markup Language)是一种被广泛使用的数据交换格式,用于存储结构化数据。为了处理XML文档,开发者可以使用多种库,其中之一就是JDOM。JDOM是...

    解析XML--老师(解析,修改,删除,导出)

    ### XML解析 1. **基础概念**:XML文件由一系列元素组成,每个元素都有开始标签和结束标签,如`内容&lt;/element&gt;`。元素可以嵌套,属性可以附加在开始标签内提供额外信息。 2. **解析方式**: - **DOM解析**:将整个...

    jdom-1.0.jar.rar_jdom_jdom-1.0.j_jdom-1.0.jar_jdom.jar 1_jdom1.0

    《JDOM:高效解析XML的Java库》 在IT领域,XML(eXtensible Markup Language)作为一种数据交换和存储的通用格式,被广泛应用在各种系统间的数据传输中。XML的灵活性和结构化特性使得它成为了网络数据传输的标准...

Global site tag (gtag.js) - Google Analytics