`
tiansoft
  • 浏览: 176096 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

xml的应用

 
阅读更多
近来公司做一个项目,其中有一个绘制地图的的软件,功能是需要保存图片文件的时候包括一份临时的文件,下次打开可以在原来的临时文件基础上继续画,但是在画图功能中有一个标识,就是线的标识,比如画一条实线标识为1,再画一条是2,一次下去,但是如果下次再打开的时候都归零了,这样不好控制,而且想到用集合的方法,但是集合是临时存放在内存的,不可以,所以想到用一种方法把它存放到xml中,下次打开的时候直接从里面取出来,就可以,
1.创建xml的类
package com.gyhq.tools;

import java.io.FileWriter;
import java.io.IOException;

import org.dom4j.Document;
import org.dom4j.DocumentFactory;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

public class CreateXml {
public void create(String xmlFileName,String line,String qb,String xLine,String cz,String tz,Integer l,Integer q,Integer xx,Integer c,Integer t){
//创建一个解析xml的工厂实例
DocumentFactory factory = new DocumentFactory();
//创建一个文档实例
Document document = factory.createDocument();
//创建根节点
Element root = document.addElement("线标识");
//创建元素节点
Element book1 = root.addElement(line);
Element book2 = root.addElement(qb);
Element book3 = root.addElement(xLine);
Element book4 = root.addElement(cz);
Element book5 = root.addElement(tz);
//创建子元素
Element e1 = book1.addElement("直线最大值");
Element e2 = book2.addElement("铅笔最大值");
Element e3 = book3.addElement("虚线最大值");
Element e4 = book4.addElement("窜组最大值");
Element e5 = book5.addElement("通组最大值");
//为子元素赋值
e1.setText(""+l);
e2.setText(""+q);
e3.setText(""+xx);
e4.setText(""+c);
e5.setText(""+t);
//输出
OutputFormat format = new OutputFormat("    ",true,"GBK");
try {
//写入如文件流
FileWriter fw = new FileWriter(xmlFileName);
//写入xml
XMLWriter writer = new XMLWriter(fw,format);
//写入文档
writer.write(document);
            //关闭流
fw.close();

} catch (IOException ex) {
ex.printStackTrace();

}

}
public static void main(String[] args){
//new CreateXml().create("lib/bs.xml","直线","铅笔","虚线","窜组","通组",5,7,6,9,5);
     }

}

2.读取信息的类
package com.gyhq.tools;
import java.io.File;
import java.util.*;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class ReadXml {
public static String line;
public static String qb;
public static String xLine;
public static String cz;
public static String tz;

public void read(String fileName) throws Exception {
//创建一个xml读取器
SAXReader reader = new SAXReader();
//读取文件
//路径,现在4。xml是直接放在项目的根目录下Document document = reader.read(new File("4.xml"));
//若不是放在根目录下,那么就要指定一个路径,避免出错
String path = fileName;
//Document是文档
Document document = reader.read(new File(path));
//获取根元素
Element element = document.getRootElement();
element(element);

}
//递归取出所有元素
public void element(Element element){
//System.out.println("元素: "+element.getName());
//如果只是一个普通的元素没有子元素的,就直接输出
if(element.isTextOnly()==true){
     //System.out.println("元素 名称:  "+element.getName()+"||||"+"元素内容:"+element.getText());
     if(element.getName().equals("直线最大值")){
    line = element.getText();
    //System.out.println(line);
     }else if(element.getName().equals("铅笔最大值")){
    qb = element.getText();
    //System.out.println(qb);
     }else if(element.getName().equals("虚线最大值")){
    xLine = element.getText();
    //System.out.println(xLine);
     }else if(element.getName().equals("窜组最大值")){
    cz = element.getText();
    //System.out.println(cz);
     }else if(element.getName().equals("通组最大值")){
    tz = element.getText();
    //System.out.println(tz);
     }
}else{
//如果里面还有字元素的,那么就把它里面的内容输出
List elements = element.elements();
int size = elements.size();
for(int i=0;i<size;i++){
Element emt = (Element)elements.get(i);
//System.out.println("元素:"+emt.getName());
//递归遍历出所有的元素
element(emt);
//某一个元素的所有属性列出来
arr(emt);
    }
  }
}
/**
* 获取属性的方法
* @param element
*/
public void arr(Element element){
//取出所有的属性,放在list中
List att = element.attributes();
int size = att.size();
for(int i=0;i<size;i++){
//依次取出属性
Attribute attb = (Attribute)att.get(i);
//输出元素名称,属性名称和属性内容
///System.out.println("元素名称"+element.getName()+"   属性名称:"+attb.getName()+"属性内容:"+attb.getValue());
  }
}
public static void main(String[] args){
try {
new ReadXml().read("lib/000.xml");
} catch (Exception e){
    e.printStackTrace();
}
}
     }
这样就很方便的取到标识的最大值,然后下次接着画图的时候,序号标识就会连续的,达到了很好的效果
分享到:
评论

相关推荐

    xml应用的uml建模技术

    在“XML应用的UML建模技术”这个主题中,我们可以深入探讨以下几个方面: 1. **XML数据建模**:UML中的类图可以用来表示XML文档的结构,通过属性和关联来模拟XML元素和属性。类图中的类可以代表XML的根元素,属性...

    SQL Server 2000 XML应用程序开发指南

    总结起来,"SQL Server 2000 XML应用程序开发指南"是一本全面介绍如何在SQL Server 2000环境中利用XML进行开发的实用指南。它涵盖了从基础概念到高级技术的各个层面,对于希望深入理解和应用XML的SQL Server开发者来...

    SQL Server 2005 XML应用开发.iso

    SQL Server 2005 XML应用开发.isoSQL Server 2005 XML应用开发.iso

    XML应用的基石:XML解析技术

    ### XML应用的基石:XML解析技术 #### 一、引言 XML(可扩展标记语言)作为一种被W3C组织认可的文档数据格式标准,在近年来得到了广泛应用。它源自SGML(标准通用标记语言),保留了SGML的主要功能,同时简化了其...

    XML应用的UML建模技术

    UML建模技术可以帮助我们清晰地表示XML应用的各个组成部分,如数据结构、处理逻辑和交互流程。以下是关于“XML应用的UML建模技术”的详细知识点: 1. **类图(Class Diagram)**:在UML中,类图用来表示XML数据模型...

    C# WinForm窗体 XML应用代码

    总结起来,C# WinForm应用中的XML应用涵盖了XML文件的读取、解析、修改和保存,主要依赖于System.Xml命名空间下的类。通过实践和理解“XmlTest”源码,开发者可以增强对XML处理和C# WinForm交互的理解,提升开发桌面...

    PHP中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节

    在本篇文章中,我们将详细探讨PHP在XML应用程序开发中的基础知识点,包括XML简介、XML的应用实例以及在PHP中处理XML的几种常见方法。 首先,XML(可扩展的标记语言)是一种W3C标准,它主要用于Web应用程序和服务器...

    XML解析技术是XML应用的关键

    ### XML解析技术是XML应用的关键 #### 概述 随着信息技术的发展,XML(可扩展标记语言)作为一种标准化的数据表示和交换格式,在多个领域得到广泛应用。XML文档具备良好的结构化特性,能够实现跨平台、跨系统的...

    脚本语言PHP的XML应用支持.pdf

    PHP脚本语言的XML应用支持 PHP脚本语言对XML的应用支持是指PHP语言对XML文档的解析、处理和应用。PHP语言从早期的版本就开始支持XML,并不断加强完善这种支持。PHP对XML的支持主要体现在两个方面:一是基于SAX的XML...

    XML应用大全

    ### XML应用大全知识点详解 #### 1. XML概览 **1.1 什么是XML** - **1.1.1 XML是元标记语言**: XML(Extensible Markup Language,可扩展标记语言)是一种元标记语言,它允许用户自定义标记来描述数据。这意味着...

    XML应用开发(软件品牌)-1期 01-《XML应用开发》-课程简介.doc

    在《XML应用开发》课程中,学生将深入学习XML的基础概念、语法特性以及其在网络编程中的广泛应用。 课程内容主要包括以下几个方面: 1. **XML基础**:讲解XML的基本结构,包括元素、属性、文本、注释、处理指令等...

    pb 8 + xml应用

    `unoksoft_xml.pbl`和`xml.pbl`也可能是包含XML处理逻辑的库文件,其中可能包含了自定义的数据类型、事件处理程序和辅助函数,以适应特定的XML应用场景。`a_xmltest.pbt`和`xml.pbt`是项目文件,它们记录了项目的...

    在PHP中开发XML应用程序之基础篇

    在PHP中开发XML应用程序涉及到对XML的理解和使用,XML(可扩展标记语言)是一种W3C标准,设计用于传输和存储数据,具有清晰的人类可读和机器可解析的结构。XML数据不受特定平台或应用程序限制,这使得它在网络数据...

    XML应用防火墙技术.pdf

    XML应用防火墙技术则是针对XML数据在传输过程中可能遇到的安全问题而设计的一种安全防护措施。它主要关注于XML解析过程中的安全漏洞,如XXE(XML External Entity Injection)和XSS(Cross Site Scripting)等攻击。...

    《SQL server 2000 XML应用开发》

    《SQL Server 2000 XML应用开发》一书主要探讨了如何在SQL Server 2000环境中利用XML技术进行数据存储、查询和交换。SQL Server 2000是微软公司推出的一款关系型数据库管理系统,它在企业级数据管理中扮演着重要角色...

    《Java XML应用程序设计》

    《Java XML应用程序设计》是一本深入探讨如何在Java平台上利用XML技术进行应用程序开发的专业书籍。XML(eXtensible Markup Language)是一种标记语言,广泛用于数据交换、配置存储以及网络通信等多个领域。Java与...

    XML理论与实务-Java的XML应用程式开发.doc

    XML,即可扩展标记语言(eXtensible Markup Language),是一种用于存储和传输结构化数据的标准标记语言。它被设计为具有自我描述性,通过使用...理解并掌握XML的相关知识,对于进行Java的XML应用程式开发至关重要。

    XML应用开发(软件品牌)-1期 3.1 课堂实践-认识XML Schema文档结构.doc

    在XML应用开发中,XML Schema文档结构扮演着至关重要的角色,它为XML文档提供了严谨的语法规则,确保数据的一致性和准确性。本实践主要涉及对XML Schema文档结构的认识以及如何使用XML Schema进行XML文档的验证。 ...

Global site tag (gtag.js) - Google Analytics