`
- 浏览:
73759 次
- 性别:
- 来自:
北京
-
- 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 {
-
-
-
-
- public static void main(String[] args) {
-
- 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");
-
- }
-
-
- 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;
- }
-
- 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) {
-
- System.out.println("创建XML文件失败:"+e.getMessage());
- }
- return returnValue;
-
- }
-
- 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());
- }
- }
-
- 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) {
-
- System.out.println("修改XML文件出错:"+e.getMessage());
- }
-
- return returnValue;
-
-
- }
-
- 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) {
-
- e.printStackTrace();
- }
- return returnVlalue;
-
- }
-
- private void showFile(String fileName, Document document) {
-
- 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) {
-
- Document document=null;
- try {
- SAXBuilder saxBuilder=new SAXBuilder();
- document=saxBuilder.build(new File(fileName));
- } catch (Exception e) {
-
- System.out.println("载入失败:"+e.getMessage());
- return null;
- }
- return document;
- }
-
- private boolean saveFile(String fileName, Document document, String encoding) {
-
- Format format=Format.getPrettyFormat();
- if(encoding!=null){
- format.setEncoding(encoding);
- }
- format.setIndent(" ");
- 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) {
-
- 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();
- }
-
-
- }
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
接下来,我们将详细介绍使用JDOM读取XML文件的步骤: 1. 加载XML文件:使用`SAXBuilder`类来读取XML文件并构建DOM树。如下所示: ```java import org.jdom2.Document; import org.jdom2.input.SAXBuilder; public...
本篇文章将深入探讨如何使用JDOM解析XML文件。 首先,我们需要理解JDOM的基本结构。JDOM通过Document对象表示整个XML文档,Element代表XML元素,Attribute表示元素属性,Text表示元素内的文本内容。这些类构成了...
要使用JDOM读取XML文件,我们需要以下几个步骤: 1. 引入JDOM库:在项目中添加JDOM的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.jdom <artifactId>jdom2 <version>...
通过这个简单的示例,我们了解了如何使用 JDOM 库来读取、解析、修改和保存 XML 文件。JDOM 提供了一个强大而直观的 API,使得开发者能够更加高效地处理 XML 数据。对于需要频繁与 XML 数据交互的应用程序来说,JDOM...
在JDOM中,读取XML文件通常涉及以下步骤: 1. 创建一个`SAXBuilder`实例,这是解析XML文档的入口点。 2. 使用`SAXBuilder`的`build`方法读取XML文件,返回一个`Document`对象。 3. 通过`Document`对象访问XML文档的...
在JDOM中,读取XML文档首先需要解析XML文件到一个`SAXBuilder`对象,然后通过这个对象构建一个`Document`对象。以下是一个基本的读取XML文件的示例: ```java import org.jdom2.*; import org.jdom2.input....
在这个例子中,我们将深入探讨如何使用JDOM解析XML文件,并进行遍历与构建。 首先,我们需要了解JDOM的基本概念。JDOM主要由三部分构成:SAXBuilder用于从XML源构建DOM树,Element代表XML文档的元素,Attribute代表...
3. **解析XML文件**:使用`SAXBuilder`或者`JDOMBuilder`可以解析XML文件到一个`Document`对象。例如: ```java SAXBuilder builder = new SAXBuilder(); File xmlFile = new File("path_to_your_xml_file.xml");...
本教程将深入探讨如何使用JDOM读取XML文件,并阐述其在Spring框架中的应用。 首先,我们了解JDOM的基本概念。JDOM提供了一种树型结构来表示XML文档,其中XML元素、属性、文本和注释等都对应于特定的Java对象。通过...
在这个例子中,我们将学习如何读取XML文件,创建一个`SAXBuilder`对象来构建XML文档的DOM(文档对象模型)表示,然后通过`Document`对象来访问和修改XML结构。 2. `sohuchannel.xml`:这是我们要解析的XML文件,可能...
**JDOM解析XML文件** XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件和文档存储等领域。在Java中,JDOM(Java Document Object Model)是一个流行的选择来解析和操作...
Java JDOM解析XML是Java开发中处理XML文档的一种方法,JDOM全称为Java Document Object Model,它是一个基于Java语言的API,用于创建、修改和读取XML文档。JDOM为XML处理提供了一种高效且方便的解决方案,尤其适用于...
然后,我们可以编写Java代码来解析XML文件: ```java import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.input.SAXBuilder; import java.io.File; public class JdomReader { public ...
通过上述分析可以看出,JDOM不仅提供了简洁的API来处理XML文档,还能够很好地应对常见的读取、修改、添加和删除等操作需求。然而,在实际项目中,根据具体的需求和技术栈选择合适的XML处理工具也是非常重要的。
这个JSP页面首先解析XML文件,显示其顶级元素,然后以格式化的形式输出整个XML文档。 **7. 性能考虑** 虽然JDOM提供了易用性,但它的性能可能不如其他XML解析器如DOM4J或StaX。在处理大型XML文件时,应考虑这些...
本篇文章将深入探讨如何利用JDOM解析XML文件,以及在这个过程中涉及的关键知识点。 首先,我们需要了解XML(Extensible Markup Language)的基本概念。XML是一种标记语言,用于存储和传输结构化数据。它的结构清晰...
本篇文章将深入探讨如何利用JDOM解析XML文件,并基于XML中的类名生成相应的对象。 首先,我们需要理解JDOM的基本概念。JDOM提供了一组Java对象来表示XML文档,包括Element(元素)、Attribute(属性)、Text(文本...
本文将详细介绍如何使用Java来读取和修改XML文件,主要涉及以下几个核心知识点: 1. **DOM解析器**: Document Object Model(DOM)是一种将XML文档转换为内存中的树形结构的方法,使得可以遍历和修改XML文件。...
### jdom解析XML文件及将字符串解析为XML #### 一、JDOM简介与环境搭建 JDOM(Java Document Object Model)是一种用Java语言编写的轻量级API,用于处理XML文档。它允许开发者轻松地读取、创建、修改XML文档,并将...
然后,我们可以创建一个`SAXBuilder`实例,用于解析XML文件: ```java SAXBuilder saxBuilder = new SAXBuilder(); ``` 接着,使用`SAXBuilder`的`build()`方法读取XML文件并构建一个`Document`对象,这是JDOM中的...