转自:http://takeme.iteye.com/blog/1825967
加入
D:\Soft\jar\jdom.jar
- package com.itheima.xml;
- import java.io.File;
- import java.io.FileWriter;
- import java.util.Iterator;
- import java.util.List;
- import org.jdom.Attribute;
- 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 TextJDOMparseXML {//操作使用JDOM解析XML文件的类
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- String fileName="F:/test1.xml";
- TextJDOMparseXML jdomXml=new TextJDOMparseXML();
- System.out.println("===============1.运用jdom创建XML文件");
- if(jdomXml.createXMLFile(fileName, "GB2312")==1)
- System.out.println("运用JDOM创建XML文件成功!");
- else
- System.out.println("运用JDOM创建XML文件失败!");
- System.out.println("===============2.运用JDOM读取XML文件");
- jdomXml.read(jdomXml.getDocument(fileName));
- System.out.println("===============3.修改XML内容,输出修改后的文档");
- jdomXml.update(fileName, "rongshu", "liushu");
- System.out.println("===============4.删除编号为002的节点,输出修改后的文件");
- jdomXml.delete(fileName, "002");
- }
- //生成一个新的Document
- public Document createDocument(){
- Document document=new Document();
- return document;
- }
- //创建一个节点
- public Element createElement(String paramName,String paramValue){
- Element element=new Element(paramName);
- element.setText(formatTextForXML(paramValue));
- return element;
- }
- //创建 XML文件
- public int createXMLFile(String fileName,String encoding){
- int returnValue=0;
- Document document=createDocument();
- Element treesElement=createElement("trees", null);
- Element treeElement=new Element("tree");
- treeElement.setAttribute("id","001");
- treeElement.setAttribute("name","rongshu");
- Element typeElement=new Element("type");
- typeElement.setText("style");
- typeElement.setAttribute("id","xiaoshu");
- treeElement.addContent(typeElement); //添加 子节点
- Element descElement=new Element("description");
- descElement.setText(formatTextForXML("It is a big tree"));
- treeElement.addContent(descElement);
- treesElement.addContent(treeElement);
- Element tree1Element=new Element("tree");
- tree1Element.setAttribute("id","002");
- tree1Element.setAttribute("name","yangshu");
- Element type1Element=new Element("type");
- type1Element.setText("style");
- type1Element.setAttribute("id","dashu");
- tree1Element.addContent(type1Element);
- Element desc1Element=new Element("description");
- desc1Element.setText(formatTextForXML("The tree grows taller from day to day"));
- tree1Element.addContent(desc1Element);
- treesElement.addContent(tree1Element);
- Element tree2Element=new Element("tree");
- tree2Element.setAttribute("id","003");
- tree2Element.setAttribute("name","songshu");
- Element desc2Element=new Element("description");
- desc2Element.setText(formatTextForXML("The tree is very beautiful"));
- tree2Element.addContent(desc2Element);
- treesElement.addContent(tree2Element);
- Element flowerElement=new Element("flower");
- flowerElement.setText("rose");
- treesElement.addContent(flowerElement);
- document.addContent(treesElement);
- try {
- saveFile(fileName,document,encoding);
- returnValue=1;
- } catch (Exception e) {
- // TODO: handle exception
- System.out.println("创建XML文件失败:"+e.getMessage());
- }
- return returnValue;
- }
- //读取xml
- public void read(Document document){
- try {
- Format format=Format.getPrettyFormat();
- format.setEncoding("GB2312");
- XMLOutputter xmlOutputter=new XMLOutputter(format);
- xmlOutputter.output(document, System.out);
- } catch (Exception e) {
- System.out.println("读取XML文件失败:"+e.getMessage());
- }
- }
- //修改 xml文档节点
- public int update(String fileName,String oldName,String newName){
- int returnValue=0;
- Document document=getDocument(fileName);
- List list=document.getRootElement().getChildren();
- for (int i = 0; i < list.size(); i++) {
- Element element=(Element)list.get(i);
- Attribute attribute=element.getAttribute("name");
- if(attribute!=null){
- if(attribute.getValue().equals(oldName)){
- attribute.setValue(newName);
- }
- }
- }
- list=document.getRootElement().getChildren("flower");
- Iterator iter=list.iterator();
- if(iter.hasNext()){
- Element el=(Element)iter.next();
- el.setText("lily");
- Element date=new Element("date");
- date.setText("2009-04-10");
- date.setAttribute("type","calendar");
- el.addContent(date);
- }
- try {
- showFile(fileName,document);
- returnValue=1;
- } catch (Exception e) {
- // TODO: handle exception
- System.out.println("修改XML文件出错:"+e.getMessage());
- }
- return returnValue;
- }
- //删除XML 节点
- public boolean delete(String fileName,String id){
- boolean returnVlalue=false;
- Document doc=getDocument(fileName);
- Element root=doc.getRootElement();
- List list=root.getChildren("tree");
- for (int i = 0; i < list.size(); i++) {
- Element element=(Element)list.get(i);
- if (element.getAttribute("id").getValue().equals(id)) {
- root.removeContent(element);
- }
- }
- try {
- showFile(fileName, doc);
- returnVlalue=true;
- } catch (Exception e) {
- // TODO: handle exception
- e.printStackTrace();
- }
- return returnVlalue;
- }
- private void showFile(String fileName, Document document) {
- // TODO Auto-generated method stub
- Format format=Format.getPrettyFormat();
- format.setEncoding("GB2312");
- format.setIndent(" ");
- try {
- XMLOutputter xmlOutputter=new XMLOutputter(format);
- FileWriter fileWriter=new FileWriter(fileName);
- xmlOutputter.output(document, fileWriter);
- xmlOutputter.output(document, System.out);
- } catch (Exception e) {
- System.out.println("XML文件输出到控制台出错:"+e.getMessage());
- }
- }
- private Document getDocument(String fileName) {
- // TODO Auto-generated method stub
- Document document=null;
- try {
- SAXBuilder saxBuilder=new SAXBuilder();
- document=saxBuilder.build(new File(fileName));
- } catch (Exception e) {
- // TODO: handle exception
- System.out.println("载入失败:"+e.getMessage());
- return null;
- }
- return document;
- }
- private boolean saveFile(String fileName, Document document, String encoding) {
- // TODO Auto-generated method stub
- Format format=Format.getPrettyFormat();
- if(encoding!=null){
- format.setEncoding(encoding);
- }
- format.setIndent(" "); //设置xml文件的缩进
- try {
- XMLOutputter xmlOutputter=new XMLOutputter(format);
- FileWriter fileWriter=new FileWriter(fileName);
- xmlOutputter.output(document, fileWriter);
- } catch (Exception e) {
- System.out.println("保存文件出错:"+e.getMessage());
- return false;
- }
- return true;
- }
- private String formatTextForXML(String sourceString) {
- // TODO Auto-generated method stub
- if (sourceString==null) {
- return null;
- }
- int stLen=0;
- StringBuffer reString= new StringBuffer();
- String deString="";
- stLen=sourceString.length();
- for (int i = 0; i < stLen; i++) {
- char ch=sourceString.charAt(i);
- switch (ch) {
- case '<':
- deString="<";
- break;
- case '>':
- deString=">";
- break;
- case '\"':
- deString="\"";
- break;
- case '&':
- deString="&";
- break;
- case 13:
- deString="\n";
- break;
- default:
- deString=""+ch;
- break;
- }
- reString.append(deString);
- }
- return reString.toString();
- }
- }
相关推荐
接下来,我们将详细介绍使用JDOM读取XML文件的步骤: 1. 加载XML文件:使用`SAXBuilder`类来读取XML文件并构建DOM树。如下所示: ```java import org.jdom2.Document; import org.jdom2.input.SAXBuilder; public...
本教程将深入探讨如何使用JDOM读取XML文件,并阐述其在Spring框架中的应用。 首先,我们了解JDOM的基本概念。JDOM提供了一种树型结构来表示XML文档,其中XML元素、属性、文本和注释等都对应于特定的Java对象。通过...
在JDOM中,读取XML文件通常涉及以下步骤: 1. 创建一个`SAXBuilder`实例,这是解析XML文档的入口点。 2. 使用`SAXBuilder`的`build`方法读取XML文件,返回一个`Document`对象。 3. 通过`Document`对象访问XML文档的...
要使用JDOM读取XML文件,我们需要以下几个步骤: 1. 引入JDOM库:在项目中添加JDOM的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.jdom <artifactId>jdom2 <version>...
### JDOM 读取与修改 XML 文件 #### JDOM 简介 JDOM(Java Document Object Model)是一个用于处理 XML 数据的 Java 库。它提供了面向对象的 API 来解析、创建和修改 XML 文档。JDOM 的设计非常直观且易于使用,...
**JDOM读取XML** 在JDOM中,读取XML文档首先需要解析XML文件到一个`SAXBuilder`对象,然后通过这个对象构建一个`Document`对象。以下是一个基本的读取XML文件的示例: ```java import org.jdom2.*; import org....
jdom学习读取xml文件资料小列子,非常简单明了。
通过上述分析可以看出,JDOM不仅提供了简洁的API来处理XML文档,还能够很好地应对常见的读取、修改、添加和删除等操作需求。然而,在实际项目中,根据具体的需求和技术栈选择合适的XML处理工具也是非常重要的。
要使用JDOM读取XML文件,首先需要导入必要的库: ```java import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.input.SAXBuilder; ``` 然后,我们可以创建一个`SAXBuilder`实例,用于解析XML...
在Java编程中,JDOM(Java Document Object Model)是处理XML的一种库,它提供了方便的方式来创建、修改和读取XML文档。本篇文章将深入探讨如何使用JDOM解析XML文件。 首先,我们需要理解JDOM的基本结构。JDOM通过...
使用JDOM读取XML文件的第一步是引入相关的库。如果你使用的是Maven项目,需要在pom.xml文件中添加JDOM依赖: ```xml <groupId>org.jdom <artifactId>jdom2 <version>2.0.6 ``` 然后,我们可以编写Java代码来...
本文将详细介绍如何使用Java来读取和修改XML文件,主要涉及以下几个核心知识点: 1. **DOM解析器**: Document Object Model(DOM)是一种将XML文档转换为内存中的树形结构的方法,使得可以遍历和修改XML文件。...
在读取XML文件后,可以通过DOM提供的API进行修改,如`Element`的`setTextContent`、`setAttribute`等方法。修改完成后,需使用`Transformer`将`Document`对象转换回XML字符串,保存到文件。 8. **XPath和XSLT** ...
使用JDOM方法读取XML文件,需要创建SAXBuilder对象,读取XML文件得到Document对象,然后使用Element对象的getChild Elements方法获取指定标签的元素列表,遍历元素列表进行数据提取。 优点:JDOM方法提供了高效的...
用JDOM读取XML文件 用JDOM读取XML文件用JDOM读取XML文件
org.jdom包含了所有的xml文档要素的java类 org.jdom.adapters包含了与dom适配的java类 org.jdom.filter包含了xml文档的过滤器类 org.jdom.input包含了读取xml文档的类 org.jdom.output包含了写入xml文档的类 org....
3. 读取XML文件并构建DOM树:`File xmlFile = new File("path_to_xml_file"); Document document = saxBuilder.build(xmlFile);` 4. 获取根元素:`Element rootElement = document.getRootElement();` 5. 遍历元素...
解析XML文档,通常涉及读取XML文件,将其转换为`Document`对象,然后遍历和操作元素。以下是一个解析XML并打印所有书籍ID的示例: ```java import org.jdom2.Document; import org.jdom2.Element; import org.jdom2...
JDOM是Java中一个专门用来处理XML的库,它提供了一种高效、灵活且完全符合Java语言习惯的方式来读取、写入和操作XML文档。下面我们将详细探讨JDOM解析本地XML的相关知识点。 首先,JDOM的核心概念包括`Element`、`...
接下来,我们将详细介绍JDOM读取XML文件的步骤: 1. 创建`SAXBuilder`对象:`SAXBuilder`是JDOM中用于构建XML文档的类,它使用SAX解析器来解析XML文件。 ```java import org.jdom2.input.SAXBuilder; SAXBuilder ...