package com.donson.common;
import java.io.File;
import java.io.FileOutputStream;
import java.io.Reader;
import java.io.StringReader;
import java.io.FileInputStream;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
public class XmlOperate {
public static void main(String[] args) {
XmlOperate xo= new XmlOperate ();
xo.add();
}
//访问xml文件
private void printXmlContent(){
SAXBuilder builder = new SAXBuilder();
String fileContent = getXmlContent();
try{
Reader readStr = new StringReader(fileContent);
Document doc = builder.build(readStr);
Element root = doc.getRootElement();
List childList = root.getChildren();
System.out.println("list="+childList.size());
for(int i=0;i Element child = (Element)childList.get(i);
System.out.println("ok="+child.getAttributeValue("ok"));
System.out.println("id="+child.getChildTextTrim("id"));
System.out.println("address="+child.getChildTextTrim("address"));
System.out.println("text="+child.getTextTrim());
Element cd = child.getChild("subx");//获取该节点下面的子节点
if(cd!=null){
System.out.println("cd-id="+cd.getChildText("id"));
System.out.println("cd-value="+cd.getChildText("value"));
}
}
}catch(Exception e){
System.out.println(e.getMessage());
}
}
//添加操作
private void add(){
SAXBuilder builder = new SAXBuilder();
String fileContent = getXmlContent();
try{
Reader readStr = new StringReader(fileContent);
Document doc = builder.build(readStr);
Element root = doc.getRootElement();
List childList = root.getChildren();
System.out.println("list="+childList.size());
Element el = new Element("subroot");
el.setAttribute("ok","true");
el.setText("xxxx");
Element id = new Element("id");
id.setText("25");
el.addContent(id);
Element name = new Element("name");
name.setText("guolp25");
el.addContent(name);
Element address = new Element("address");
address.setText("深圳25");
Element sex = new Element("sex");
sex.setText("F25");
el.addContent(sex);
Element subx = new Element("subx");
Element sid = new Element("id");
sid.setText("s11");
subx.addContent(sid);
Element scontent = new Element("content");
scontent.setText("最好操作");
subx.addContent(scontent);
subx.setAttribute("ok","true");
el.addContent(subx);
childList.add(el);
Format format = Format.getCompactFormat();
format.setEncoding("gbk");
format.setIndent(" ");
XMLOutputter XMLOut = new XMLOutputter(format);
FileOutputStream writer = new FileOutputStream("d:\\test.xml");
XMLOut.output(doc, writer);
writer.close();
readStr.close();
}catch(Exception e){
System.out.println(e.getMessage());
}
}
private String getXmlContent(){
String xmlfilepath = "d:\\test.xml";
File file = new File(xmlfilepath);
if(!file.exists() || file.length()<=0){
return null;
}else{
FileInputStream fis = null;
try{
fis = new FileInputStream(file);
long fileLength = file.length();
byte[] fileBytes = new byte[(int)fileLength];
fis.read(fileBytes);
String fileData = new String(fileBytes);
return fileData;
}catch(Exception e){
e.printStackTrace();
return null;
}finally{
try{
if(fis != null){
fis.close();
fis = null;
}
}catch(Exception e){
e.printStackTrace();
}
}
}
}
}
文件格式见附件:
分享到:
相关推荐
JDOM是Java中专门用来解析和操作XML的一个库,它提供了一种高效且方便的方式来处理XML文档。本实例将深入讲解如何使用JDOM进行XML解析。 首先,我们需要在项目中引入JDOM的类库。JDOM官方网站提供了不同版本的JDOM ...
在这个小实例中,我们将深入探讨如何使用JDOM解析XML文件。 首先,我们需要引入JDOM的依赖。在Java项目中,如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.jdom <artifactId>...
JDOM提供了一个直接映射到XML文档的Java对象模型,使得操作XML变得更为便捷。 首先,让我们深入理解JDOM的基本概念。JDOM的核心类包括`Element`、`Attribute`、`Document`等。`Document`代表整个XML文档,它是XML...
总的来说,JDOM作为Java处理XML的工具,可以帮助开发者轻松地读取和操作XML文档。在Spring框架中,虽然直接使用JDOM解析配置文件并不常见,但理解XML和JDOM的基本操作对于深入学习Spring的XML配置是有益的。通过阅读...
### 利用 JDOM 操作 XML 文档 #### 一、引言 JDOM(Java Document Object Model)是一种用于处理 XML 数据的 Java 库。它提供了面向对象的 API,允许开发人员以简单直观的方式创建、读取、更新和保存 XML 文档。与 ...
JDOM是Java中一个专门用来处理XML的库,它提供了一种高效且方便的方式来创建、修改和读取XML文档。本篇文章将深入探讨如何利用JDOM解析XML文件,并基于XML中的类名生成相应的对象。 首先,我们需要理解JDOM的基本...
本实例将详细介绍如何使用JDOM解析XML,包括生成新的XML文件、读取XML以及修改XML。 1. **生成新的XML文件** 使用JDOM创建XML文件,首先需要构建一个`Element`对象作为根节点,然后添加子元素和属性。以下是一个...
总结一下,JDOM在Java EE环境中用于读取XML文件,提供了便捷的API来操作XML文档。在处理包含属性的XML元素时,可以利用`Element`类的`getAttributeValue()`方法轻松获取属性值。对于大型或复杂的XML文档,JDOM提供了...
- **优化策略**:如果确实需要处理大型XML文件,可以使用JDOM的SAXBuilder,它允许以SAX方式读取XML,但仍然使用JDOM API进行操作。 6. **示例代码** ```java import org.jdom2.Document; import org.jdom2....
JDOM(Java Document Object Model)是Java平台上的一个开源库,专门用来处理XML文档,提供了高效且方便的方式来创建、读取、修改XML文档。 在Java中,使用JDOM进行XML操作主要涉及以下几个核心概念和步骤: 1. **...
在工作中发现jdom生成xml标签如<taxML xmlns:xsi="http://www.worg/2001/XMLSchema-instance" xsi:type="Fb1"cnName="附表1" name="Fb1"version="SW5001-2006"> 不能用冒号的问题root.setAttribute("xsi:type", "fb1...
Java中的JDOM库是用于解析XML文档的一种强大的工具。...通过JDOM,你可以轻松地处理XML文档,无论是读取还是修改,都变得轻而易举。在实际开发中,掌握XML和JDOM的操作对于处理结构化数据和接口通信至关重要。
通过JDOM,我们可以直接在内存中操作XML文档,这使得XML数据处理更加便捷。 **XML基础** XML(Extensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件和文档存储等领域。XML文档...
Java读取XML文件是开发过程中常见的任务,JDOM是一个用于处理XML文档的Java库,它提供了方便、高效的方式来创建和操作XML数据。本篇将详细讲解如何使用JDOM来读取XML文件,以及相关的源码解析。 首先,我们需要了解...
无论是从文件还是从字符串中读取XML,都可以通过JDOM提供的API轻松实现。这对于开发涉及XML处理的应用程序来说是非常有用的。 需要注意的是,在实际应用中,还需要根据具体的业务需求选择合适的XML处理技术。除了...
JDOM是Java中专门用来处理XML文档的一个库,它提供了方便的API来创建、读取、修改和保存XML文档。本实例将探讨如何使用JDOM进行XML文件的解析。 首先,我们来看JDOM的基本结构。JDOM的核心类包括`Element`,代表XML...
例如,你可以创建一个`SAXBuilder`实例,然后调用其`build()`方法读取XML文件并将其转换为`Document`对象。 `jdom-b3-docs.zip`可能包含JDOM的API文档,这对于理解和使用库中的各种类和方法至关重要。开发者可以...
5. **org.jdom.output**: 包含将XML文档输出的各种类,如XMLOutputter,可以将XML文档写入文件或流。 ### 四、JDOM使用方法 1. **Document类操作**: - 创建新的Document对象:`Document doc = new Document(new ...
无论是加载、查询还是修改XML文档,JDOM都提供了丰富的API支持,使得开发者能够更专注于业务逻辑而非繁琐的数据操作细节。通过本文对JDOM基本结构、类和方法的介绍,相信读者已经对如何使用JDOM有了初步的认识。接...