- 浏览: 103409 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
lishali12345:
深有同感啊!共同祝福,共同成长!
JavaEye有感 -
xly_971223:
最简单的方式是设cookie,cookie的path设置成你的 ...
二个Web程序共用一个用户信息 -
javazhujf:
SSO有很多实现方法,简单的方法可以用db保存user信息
二个Web程序共用一个用户信息
package com.test;
import java.io.File;
import java.io.FileWriter;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class Test {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
String fileName = "E:\\persons.xml";
newFile(fileName);
readerAndEdit(fileName);
}
//新建一个文档
public static void newFile(String fileName){
Document doc = DocumentHelper.createDocument();
Element persons = doc.addElement("persons");
persons.addComment("这是xml的注释");
Element person1 = persons.addElement("person");
person1.addAttribute("sex", "男");
Element name1 = person1.addElement("name");
name1.setText("张三");
Element age1 =person1.addElement("age");
age1.setText("22");
try{
OutputFormat fmt = OutputFormat.createPrettyPrint();//IE : 可以不加
fmt.setEncoding("GBK"); //支持中文 : 可以不加
XMLWriter writer = new XMLWriter(new FileWriter(new File(fileName)),fmt); //或者 : new XMLWriter(new FileWriter(new File(fileName)))
writer.write(doc);
writer.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
//读文档进行修改
public static void readerAndEdit(String fileName) throws Exception{
SAXReader reader = new SAXReader();
Document doc = reader.read(new File(fileName));
List<Attribute> attList = doc.selectNodes("/persons/person/@sex
");
//修改性别
for(Attribute att : attList){
if("男".equals(att.getValue())){
att.setValue("女");
}
}
List<Element> personList = doc.selectNodes("/persons/person");
//添加元素
for(Element person : personList){
Element address = person.addElement("address");
address.setText("北京");
}
//删除元素
List<Element> list = doc.selectNodes("/persons/person");
for(Element person : list){
Iterator<Element> addList = person.elementIterator("address");
while(addList.hasNext()){
person.remove(addList.next());
}
}
OutputFormat fmt = OutputFormat.createPrettyPrint();
fmt.setEncoding("GBK");
XMLWriter writer = new XMLWriter(new FileWriter(new File(fileName)),fmt);
writer.write(doc);
writer.close();
}
}
-------------------------------------BaseRead 类
package cn.com.cncsi.product.ttms.common.distribute.parsexml;
import java.io.File;
import java.sql.Timestamp;
import java.util.HashMap;
import java.util.List;
import junit.framework.TestCase;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import com.sun.org.apache.bcel.internal.generic.GOTO;
/**
* 解析XML的基类
*
*/
public abstract class BaseRead {
/**
* 可以得到头部信息<Head>,以键值对的形式存储
*/
protected HashMap<String, String> headMP = new HashMap<String, String>();
/**
* 将List集合传成String时的分隔符
*/
protected String split = ";";
/**
* 根据文件名解析文件
* 例: C:\\web.xml
*/
protected Document testRead(String fileName){
try{
SAXReader reader = new SAXReader();
Document doc = reader.read(new File(fileName));
initHead(doc);
return doc;
}catch(Exception ex){
System.out.println("读取文件初始化头部Head错误");
// ex.printStackTrace();
}
return null;
}
/**
* 传入xml格式的字符串进行解析
* @param data
* @return
*/
protected Document readByString(String data){
try{
Document doc = DocumentHelper.parseText(data);
initHead(doc);
return doc;
}catch(Exception ex){
System.out.println("解析数据初始化头部Head错误");
// ex.printStackTrace();
}
return null;
}
/**
* 初始化所有xml的头部信息,并存入HashMap属性中.
* @param doc
*/
private void initHead(Document doc){
//读取head
List<Element> headElementList = doc.selectNodes("/ServiceContext/Head/property");
for(Element el : headElementList){
headMP.put(el.attributeValue("name"),el.attributeValue("value"));
}
}
/**
* 返回一个HashMap,用于保存xml文件的问信息(Head)
* @return
*/
public HashMap getHeadMP(){
return headMP;
}
/**
* 传入节点.将节点的值转换成Double类型
*/
protected double toDouble(Element e){
String temp = e.attributeValue("value");
try{
return Double.parseDouble(temp);
}catch(Exception ex){
System.out.println("转换Double类型出错");
// ex.printStackTrace();
}
return 0;
}
/**
* 传入节点.将节点的值转换成Timestamp类型
*/
protected Timestamp toTime(Element e){
String temp = e.attributeValue("value");
try{
return Timestamp.valueOf(temp);
}catch(Exception ex){
System.out.println("转换Timestamp类型出错");
// ex.printStackTrace();
}
return Timestamp.valueOf("2008-08-08 12:12:12");
}
/**
* 传入节点.将节点的值转换成long类型
*/
protected long toLong(Element e){
String temp = e.attributeValue("value");
try{
return Long.parseLong(temp);
}catch(Exception ex){
System.out.println("转换long类型出错");
// ex.printStackTrace();
}
return 0;
}
/**
* 传入节点.将节点的值转换成int类型
*/
protected int toInt(Element e){
String temp = e.attributeValue("value");
try{
return Integer.parseInt(temp);
}catch(Exception ex){
System.out.println("转换long类型出错");
// ex.printStackTrace();
}
return 0;
}
/**
* 传入节点.将节点的值转换成String类型
*/
protected String toValue(Element e){
return e.attributeValue("value");
}
/**
* 传入节点.得到节点的name属性的值
*/
protected String toName(Element e){
return e.attributeValue("name");
}
}
-----------------解析XML的类 extends BaseRead
Document doc = readByString(data); //data:xml格式的字符串
Element tTCommonOpElement = (Element) doc.selectNodes("/ServiceContext/TTCommonOp").get(0);
String nodeName;
String nameValue;
for(Element element : (List<Element>)tTCommonOpElement.elements()){
nodeName = element.getName();
nameValue = toName(element);
if("TT_Code".equalsIgnoreCase(nameValue)){
}else if("Operation".equalsIgnoreCase(nodeName)){
List<Element> opElement = element.elements();
String opNodeName ;
String opNameValue ;
for(Element el : opElement){
opNodeName = el.getName();
opNameValue = toName(el);
if("Operation_Id".equalsIgnoreCase(opNameValue)){
}else if("Operation_Name".equalsIgnoreCase(opNameValue)){
}else if("Operator".equalsIgnoreCase(opNodeName)){
List<Element> list = el.elements();
String orNameValue ;
for(Element e: list){
String eNameValue = e.attributeValue("name");
if("User_Id".equalsIgnoreCase(eNameValue)){
}else if("User_Name".equalsIgnoreCase(eNameValue)){
}else if("Zone_Code".equalsIgnoreCase(eNameValue)){
}
}
}else if("Operator_Dept".equalsIgnoreCase(opNodeName)){
List<Element> list = el.elements();
for(Element e : list){
String eNameValue = e.attributeValue("name");
if("Dept_Id".equalsIgnoreCase(eNameValue)){
}else if("Dept_Name".equalsIgnoreCase(eNameValue)){
}
}
}
}
}
}
发表评论
-
JDBC工具类(ConDB、Dao、MyProperties、MyException、db属性文件)
2008-09-27 12:05 33591.自定义异常类 package co ... -
ResultSet ——>List
2008-09-26 15:58 3123package com.service; import ja ... -
java 反 - 射
2008-09-26 15:01 930获取一个class所对应的Cl ... -
控制台接收参数
2008-09-26 14:59 1591在控制台接收参数有二种方式 1. Scanner input= ... -
--Properties文件使用
2008-09-26 14:58 1098Properties 基本知识如果 ... -
Hasttable--与--HashMap的区别
2008-09-26 14:57 1621Hashtable和HashMap的区别 1. ... -
--Iterator(接口)模式
2008-09-26 14:56 1392java.util包中包含了一系列重要的集合类。本文将从分析源 ... -
Java-常-用-集-合
2008-09-26 14:53 1448java 代码 import java.util.L ... -
List,Map,Set的区别
2008-09-26 14:51 3675List接口对Collection进行 ... -
Java----对象序列化--和XML
2008-09-26 14:23 1128public class XMLUtil implements ... -
Java-常---用-集-合
2008-07-03 18:08 1020Hashtable和HashMap的区别 1.Hasht ...
相关推荐
pugixml是一款轻量级、高性能的C++库,专为XML解析和操作而设计。这个库由Artemev开发,提供了简单易用的API,使得在C++项目中处理XML文档变得非常便捷。本示例将详细介绍如何使用pugixml进行XML的读取和写入操作。 ...
在PowerBuilder(简称PB)这个强大的开发环境中,处理XML文件是一项常见的任务。XML(Extensible Markup Language)是一种用于存储和传输数据的通用格式,尤其在跨平台和网络应用中广泛使用。本示例主要探讨如何在...
TinyXML和TinyXML2是两个小型的开源库,专门用于解析和操作XML(eXtensible Markup Language)文档。这两个库都是用C++编写的,为C++开发者提供了方便的接口来读取、写入和操作XML数据。下面将详细介绍这两个库的...
易语言XML解析是编程领域中的一个重要主题,尤其对于使用易语言进行开发的程序员来说,理解并掌握XML(可扩展标记语言)的解析方法是至关重要的。XML作为一种结构化数据存储和交换格式,广泛应用于网络通信、配置...
andxml汉化版是一个xml文件反编译工具,可与APKTOOL反编译配合使用,APK文件使用APKTool反编译生成XML文件后,就可以直接通过它进行汉化编辑 注意: 1、一键机器翻译会造成某些代码出现翻译错误现象,请人工识别。...
TinyXML-2 是一个简单、小型、高效的 C++ XML 解析器,可以被轻松集成到其他程序中。它使用文档对象模型(DOM)的方式解析XML,可解析 XML 文档,并根据该文档构建可读取、修改和保存的文档对象模型。 作为XML解析...
**Pugixml详解:一个高效易用的XML解析库** 在编程中,XML(Extensible Markup Language)是一种被广泛使用的数据交换格式,特别是在跨平台通信、配置文件和数据存储等领域。为了处理XML文档,开发者通常需要依赖...
使用java工具xml2axml.jar反编译AndroidManafest文件 通过xml2axml.jar工具反编译AndroidManafest文件 还原AndroidManafest.xml详细过程: 1、获取到apk 2、解压获取里面的AndroidManifest.xml文件 3、在xml2axml....
Oracle数据库系统提供了强大的XML处理能力,这主要体现在其内置的几个PL/SQL包上,如DBMS_XMLDOM、DBMS_XMLPARSER和DBMS_XMLQUERY。这些包为开发者提供了处理XML文档的一整套工具,使得在数据库环境中进行XML数据的...
XML(eXtensible Markup Language)是一种用于标记数据的语言,其设计目的是传输和存储数据,而非显示数据。在IT行业中,XML因其结构清晰、可扩展性强的特点,被广泛应用于数据交换、配置文件、Web服务等领域。本文...
TinyXML-2,通常以tinyxml2库的形式存在,是一个轻量级的C++库,专门用于解析和操作XML文档。这个库由李·斯坦普(Lee Stemp)开发,设计简洁,易于集成到各种项目中,特别是对于嵌入式系统和资源有限的环境。在给定...
在Qt框架中,XML文件是一种常见的数据存储格式,它提供了结构化的数据表示方式,便于程序读取和写入。QTreeWidget是Qt提供的一种用于显示树状结构数据的控件,它可以很好地展示XML文件的层次结构。QXml是Qt中的XML...
TinyXML2是一个小型、快速且易于使用的C++库,用于解析和生成XML文档。这个库的设计目标是简单、高效,并且适用于嵌入式系统。在本文中,我们将深入探讨如何使用TinyXML2来解析和创建XML文件,特别是涉及到CDATA区段...
XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用在软件开发、Web服务、配置文件等领域。本文将深入探讨XML与JavaBean之间的转换、XML标签的大小写规则、XML特殊符号的处理以及CDATA的生成。 ...
XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于配置文件、数据交换、文档存储等领域。TinyXML2是轻量级的C++ XML解析库,它提供了简单、直接的方式来读写XML文档。本项目是基于tinyxml2...
XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件、文档存储等领域。XML Schema(通常缩写为XSD)则是为XML文档定义结构和数据类型的规范,它允许我们对XML文档进行更严格...
- 库的主要类包括`XMLDocument`(XML文档对象)、`XMLElement`(XML元素)、`XMLText`(XML文本)、`XMLComment`(XML注释)和`XMLAttribute`(XML属性)等。 2. **解析XML文件** - 使用`XMLDocument::LoadFile()...
XMLParser是一种用于解析XML文档的C++实现,它旨在提供简单、小巧且稳定的解决方案,以处理XML数据。XML,即可扩展标记语言,是用于存储和传输数据的标准格式,广泛应用于配置文件、数据交换和文档结构化等领域。XML...
XML(eXtensible Markup Language)是一种用于存储和交换数据的标记语言,广泛应用于软件开发、数据存储和网络通信等领域。Matlab作为一个强大的数值计算和数据分析环境,也提供了与XML交互的功能,这主要通过XML ...
(2) 解压Xml Tools 2.4.8 Unicode.zip,关闭Notepad++ (3) 将xmltools子文件夹下的XMLTools.dll拷贝至Notepad++的plugins子文件夹 (4) 将ext_libs子文件夹下的所有dll文件拷贝至Notepad++的根目录(与notepad++.exe...