`
- 浏览:
69457 次
- 性别:
- 来自:
北京
-
- 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
相关推荐
NULL 博文链接:https://zhaohong.iteye.com/blog/426761
利用jdom读取xml 虽然是我自己写的 但是觉得有必要与大家分享一下
JDOM 操作xml 解析读取xml文件 修改 删除 增添xml指定节点信息的XmlBean
一个简单的 JDOM解析本地XML 例子
org.jdom包含了所有的xml文档要素的java类 org.jdom.adapters包含了与dom适配的java类 org.jdom.filter包含了xml文档的过滤器类 org.jdom.input包含了读取xml文档的类 org.jdom.output包含了写入xml文档的类 org....
使用jdom解析xml的实例 包括生成新的xml文件,读取xml和修改xml 项目是myeclipse创建的
针对不同的解析xml方式,做了详细的注释,有利于初学者,谢谢支持
使用Jdom.jar包解析XML文件,JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。JDOM直接为JAVA编程服务。它利用更为强有力的JAVA语言的诸多特性(方法重载、集合...
主要介绍了Java使用Jdom读取xml解析,以实例形式较为详细的分析了Jdom操作XML文件实现读取操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
读取XML文件的四种方法,详细介绍了dom,jdom,dom4j,sax
java xml.java操作XML文档,简单易用,快速生成
1、org.JDOM这个包里的类是你J解析xml文件后所要用到的所有数据类型。 Attribute CDATA Coment DocType Document Element EntityRef Namespace ProscessingInstruction Text 2、org.JDOM.transform在涉及...
读取Excel文件,将文件内容转为xml格式,并生成文件
jsp处理xml文件的相关技术文档,有用DOM做XML处理.doc、用JDOM操作XML文.txt、在JSP开发中使用jdom解析临时存放数据的XML文件.txt、第8章_JSP实现对XML读写.pdf、从数据库Mysql读取数据转化为xml文档的Java类等,想...
Java 解析XML性能分析Demo。包含了DOM解析,SAX解析, JDOM解析,DOM4J解析,JAXB解析例子。
本章目标 1. 了解什么是xml? 1.1 什么是xml? 可扩展的标记语言。...一次性读取所有内容到内存(不适于大型xml文件解析)。 (大型xml文件,建议:分解xml文件) 事件模型:Sax 特点:性能高、编码非常复杂。
SAX解析器采用了基于事件的模型,它在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。SAX对内存的要求通常会比较低,因为它让开发人员...
java解析xml四种方式 DOM (Document Object Model, 即文档对象模型) 是 W3C 组织推荐的处理 XML 的标准接口, DOM采用建立树形结构的方式访问XML文档. SAX(Simple API for XML) 不是某个官方标准,但它是 XML 社区事实...
需要在lib下拷入dom4j包,jdom.jar包。路径需要自己改。四种方式解析创建xml文件,原始的遍历xml,以及一般运用读取,更新xml。
XML的解析方式分为四种:1、DOM解析;2、SAX解析;3、JDOM解析;4、DOM4J解析。此文当为完整的java文件,可以直接使用.