原文:http://wuhongyu.iteye.com/blog/361842
要使用jdom解析xml文件,需要下载jdom的包,我使用的是jdom-1.1,附件中有。
xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<sys-config>
<jdbc-info>
<driver-class-name>oracle.jdbc.driver.OracleDriver</driver-class-name>
<url>jdbc:oracle:thin:@localhost:1521:database</url>
<user-name>why</user-name>
<password>why</password>
</jdbc-info>
<provinces-info>
<province id="hlj" name="黑龙江">
<city id="harb">哈尔滨</city>
<city id="nj">嫩江</city>
</province>
<province id="jl" name="吉林"></province>
</provinces-info>
</sys-config>
读xml文件:文章中采用用了Xpath定位,以前我不知道。
package com.why.jdom;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.jdom.input.SAXBuilder;
import org.jdom.xpath.XPath;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
public class ReadXML {
/**
* @param args
*/
public static void main(String[] args) {
SAXBuilder sax = new SAXBuilder();
try {
Document doc = sax.build("src/config.xml");
Element rootEle = doc.getRootElement();
Element driverClassNameElement = (Element)XPath.selectSingleNode(rootEle, "//sys-config/jdbc-info/driver-class-name");
String driverClassName = driverClassNameElement.getText();
System.out.println("driverClassName = " + driverClassName);
List provinceList = XPath.selectNodes(rootEle, "//sys-config/provinces-info/province");
for(Iterator it = provinceList.iterator();it.hasNext();){
Element provinceEle = (Element)it.next();
String proId = provinceEle.getAttributeValue("id");
String proName = provinceEle.getAttributeValue("name");
System.out.println("provinceId = " + proId + " provinceName = " + proName);
List cityEleList = (List)provinceEle.getChildren("city");
for(Iterator cityIt = cityEleList.iterator();cityIt.hasNext();){
Element cityEle = (Element)cityIt.next();
String cityId = cityEle.getAttributeValue("id");
String cityName = cityEle.getText();
System.out.println(" cityId = " + cityId + " cityName = " + cityName);
}
}
} catch (JDOMException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}
写xml文件:
package com.why.jdom;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;
public class WriteXML {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
Element rootEle = new Element("sys-config");
Element provincesEle = new Element("provinces-info");
Element provinceEle = new Element("province");
provinceEle.setAttribute("id","hlj");
provinceEle.setAttribute("name","黑龙江省");
Element cityEle1 = new Element("city");
cityEle1.setAttribute("id","harb");
cityEle1.addContent("哈尔滨");
Element cityEle2 = new Element("city");
cityEle2.setAttribute("id","nj");
cityEle2.addContent("嫩江");
provinceEle.addContent(cityEle1);
provinceEle.addContent(cityEle2);
provincesEle.addContent(provinceEle);
rootEle.addContent(provincesEle);
Document doc = new Document(rootEle);
XMLOutputter out = new XMLOutputter();
// out.setFormat(Format.getCompactFormat().setEncoding("GBK"));//设置文件编码,默认为UTF-8
String xmlStr = out.outputString(doc);
System.out.println(xmlStr);
try {
out.output(doc, new FileOutputStream("c:/test.xml"));
} catch (FileNotFoundException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}
分享到:
相关推荐
标题“JDom 读写XML”指的是使用JDom库进行XML文档的处理,包括读取和写入操作。JDom是一个Java API,它为XML文档提供了全面且高性能的处理能力,使得开发者能够方便地构建、修改和访问XML数据。 **JDom详解** 1. ...
使用JDOM,我们可以通过API操作这些节点来实现对XML的解析和操作。 要读取XML文件,首先需要在项目中引入JDOM库。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.jdom ...
本篇文章将详细探讨JDOM在读写XML操作中的应用。 ### 1. JDOM简介 JDOM是一个针对Java的DOM(Document Object Model)实现,旨在为Java开发者提供一个高效且灵活的方式来处理XML文档。它提供了直接在内存中构建和...
在Java编程中,JDOM(Java Document Object Model)是处理XML的一种库,它提供了方便的方式来创建、修改和读取XML文档。本篇文章将深入探讨如何使用JDOM解析XML文件。 首先,我们需要理解JDOM的基本结构。JDOM通过...
在"使用Struts,jdom对xml数据进行操作"这个主题中,我们主要会探讨如何在基于Struts的Web应用中,利用JDOM来管理存储在XML文件中的数据。首先,让我们深入了解这两个技术: **Struts框架**: 1. **架构**:Struts...
- **优点**:JDOM提供了对XML的高性能访问,支持XPath查询,且完全基于Java,无需依赖其他库,如DOM或SAX。 2. **JDOM基本结构** - **Element(元素)**:XML文档中的每一个节点,可以包含子元素、属性和文本。 ...
JDOM是两位著名的 Java 开发人员兼作者,Brett Mclaughlin 和 Jason Hunter 的创作成果, 2000 年初在类似于 Apache 协议的许可下,JDOM 作为一个开放源代码项目正式开始研发,JDOM 作为一个开放源代码项目正式开始...
NULL 博文链接:https://wen2006953.iteye.com/blog/1769333
在Java编程中,JDOM(Java Document Object Model)是处理XML的一种流行库,它提供了方便的方式来创建、修改和解析XML文档。本篇文章将深入探讨JDOM库如何实现XML文件的读取操作。 首先,为了使用JDOM,我们需要在...
JDOM,全称为Java Document Object Model,是一种专为Java设计的XML处理API,它提供了对XML文档结构的完整映射,使得我们可以方便地创建、读取和修改XML文件。下面将详细介绍如何使用JDOM来读取XML文件。 首先,...
本文将对JDOM和XML的解析进行详细介绍,并进行两者之间的比较。 **JDOM** JDOM(Java Document Object Model)是Java平台上的一个XML处理库,它提供了一种直接在Java对象层次上操作XML文档的方法。JDOM的主要优势...
在`modify()`方法中,同样使用了`SAXBuilder`解析XML文件,生成`Document`对象,然后可以对文档进行修改。例如,如果想要修改特定元素的属性或内容,可以找到相应的元素并调用相应的修改方法。 DOM4J和JDOM之间的...
XML(eXtensible Markup Language)是一种用于存储和传输数据的标准格式,特别是在Java应用程序中,XML经常被用作数据交换的...同时,要注意在处理大型XML文件时可能存在的性能问题,以及在反射操作中对类结构的依赖。
在IT领域,特别是软件开发与数据处理中,对XML(可扩展标记语言)文件的解析与操作是一项基本而重要的技能。XML作为一种标准的数据交换格式,广泛应用于不同系统间的数据通信和存储。JDOM是一个用于Java的开源XML ...
最后,为了保存对XML文件的修改,我们需要创建`Transformer`并将其应用于`Document`: ```java import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml....
这使得开发人员能够非常直观地对XML文档进行读取、修改和创建。JDOM的核心类包括: - `Document`:代表整个XML文档。 - `Element`:代表XML文档中的元素节点。 - `Text`:代表元素中的文本内容。 - `Attribute`:...
XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用在数据交换、配置文件、文档存储等领域。...在实际开发中,结合这些工具,我们可以轻松地实现对XML数据的读取、修改和生成。
### JDOM 读取与修改 XML 文件 #### JDOM 简介 JDOM(Java Document Object Model)是一个用于处理 XML 数据的 Java 库。它提供了面向对象的 API 来解析、创建和修改 XML 文档。JDOM 的设计非常直观且易于使用,...
7. **修改XML**: JDOM支持对XML进行修改,包括添加、删除和更新元素、属性等。修改后,需要使用`XMLOutputter`来生成新的XML字符串或写入到文件。 ```java XMLOutputter xmlOutput = new XMLOutputter(); xml...