XML操作1
来源:互联网 发布:windows远程桌面命令 编辑:程序博客网 时间:2024/05/22 00:19
package com.util;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
* 使用dom4j对xml文件进行读写
*
* @author yaotengjiao
* @date 2011-8-5
*/
public class ReadXMLUseDom4j {
private static String xmlPath = "G:/123/测试.xml";
/**
* main测试方法
*
* @param args
* @throws IOException
* @throws DocumentException
*/
public static void main ( String[] args ) throws IOException, DocumentException {
//createXML ();//创建文件
readAndUpdateXML ();
}
/**
* 读取xml文件信息
* 修改其中的内容
* @throws DocumentException
* @throws IOException
*
*/
public static void readAndUpdateXML () throws DocumentException, IOException {
//注意此处没有做任何的判断,详细的判断可以另外添加
File xmlFile = new File ( xmlPath );
SAXReader saxReader = new SAXReader ();//创建xml文档的读写器对象
Document doc = saxReader.read ( xmlFile );//获得Document对象(可能会出现 org.xml.sax.SAXParseException: Invalid byte 2 of 2-byte UTF-8 sequence的错误,问题可以的解决方式:1、可以更改xml文件的编码格式GBK;2、XML文件保存为UTF-8)
List list = doc.selectNodes ( "//user/Username/@chineseName" );//获得属性的集合,也可以获得单独的一个节点
Iterator iter = list.iterator ();//遍历循环节点
while (iter.hasNext ()) {
Attribute attr = (Attribute) iter.next ();//修改属性的值
if (attr.getValue ().equals ( "" )) {
attr.setValue ( "哈哈,找到了但是公司的风格" );
}
}
Element e=doc.getRootElement ();
List<Element> lis1t=e.elements ();
for(Element er:lis1t){
System.out.println (er.getName ()+" ");
}
System.out.println (doc.getRootElement ().getName ());
//设置节点
List list1 = doc.selectNodes ( "//user/Username" );
Iterator iter1 = list1.iterator ();
while (iter1.hasNext ()) {
Element ele = (Element) iter1.next ();
ele.setText ( "1324654698" );
}
OutputFormat formate=OutputFormat.createPrettyPrint ();
formate.setEncoding ( "UTF-8" );
//修改文件
//XMLWriter writer = new XMLWriter ( new FileWriter ( xmlFile ) );
XMLWriter writer = new XMLWriter ( new FileWriter ( xmlPath ),formate );
writer.write ( doc );
writer.close ();
}
/**
* 向XML文件中添加信息
* @throws IOException
* 这个解析器可以从 http://dom4j.org 获取。
* 通过设置使 dom4j-1.4/dom4j-full.jar 能够在 classpath 中访问,
* 该文件中包括 dom4j 类、XPath 引擎以及 SAX 和 DOM 接口。
* 如果已经使用了 JAXP 解析器中包含的 SAX 和 DOM 接口,
* 向 classpath 中增加 dom4j-1.4/dom4j.jar 。
* dom4j.jar 包括 dom4j 类和 XPath 引擎,
* 但是不含 SAX 与 DOM 接口。
*
*/
public static void createXML () throws IOException {
//利用DocumentHelper来创建Document对象
Document doc = DocumentHelper.createDocument ();
//添加文档说明
//doc.addDocType ( "132", null, " hahha" );
//创建节点(这是添加根节点)
Element element = doc.addElement ( "user" );
//为节点添加注释
element.addComment ( "只是一个节点" );
//使用addprocessingInstruction()方法来增加一个处理命令
//element.addProcessingInstruction ( "target", "text" );
//添加节点元素
Element childrenElement = element.addElement ( "Username" );
childrenElement.addAttribute ( "chineseName", "卡哇伊" );
childrenElement.setText ( "猜猜我是谁" );//设置节点的文本值
//使用流来创建xml文件
XMLWriter writer = new XMLWriter ( new FileWriter ( new File ( xmlPath ) ) );
writer.write ( doc );
writer.close ();
}
}
- c#操作xml(1)
- javascript操作xml 1
- XML操作(1)
- XML操作1
- php操作xml(1)
- DATASET和XML操作(1)
- js操作xml(1)
- C#操作XML文档(1)
- 操作XML
- XML操作
- xml操作
- 操作XML
- xml 操作
- XML操作
- xml操作
- xml操作
- 操作XML
- XML 操作
- 合并排序
- jOOQ 1.6.4发布 Java类库
- 2011-8-8 13:07:20
- JAVA面试题集
- ruby的include与extend
- XML操作1
- ruby的类方法与实例方法
- 程序终止
- VS2010引用Microsoft.Office.Interop生成时出错
- xml操作2
- 使用APC缓存PHP
- 在Ubuntu下进行OpenGL编程——OPENGL的HELLO WORLD
- 两个 vector 连接
- flex j2EE 例子 和BlazeDs 关于MessageBroker,endpoints 和 channels