package com.hw.DOM4J;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentFactory;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import com.hw.MyException;
/**
* @author Administrator
*
* 获取节点的文字
* String text=memberElm.getText();
* 或者可以用 String text=root.elementText("name");
*
*
*
*/
public class TestDemo extends MyException{
public TestDemo(String message) {
super(message);
// TODO Auto-generated constructor stub
}
/**
*
*/
public static void main(String[] args) {
String pathname="src/com/hw/xiongmao2.xml";//(另一种格式d:\\xiongmao.xml)
File file=new File(pathname);
Element root=null;
boolean flag=false;
XMLWriter writer=null;
Document doc=null;
OutputFormat format=null;
try {
//声明写xml的对象
//
format=OutputFormat.createPrettyPrint();
format.setEncoding("GBK");//设置xml文件的编码格式
//判断文件是否存在
if(file.exists()){
SAXReader reader=new SAXReader();
doc=reader.read(file);//读取xml文件
root=doc.getRootElement();//得到根结点
Element xiongmao=null;
Element name=null;
for(Iterator iterator=root.elementIterator("xiongmao");iterator.hasNext();){
xiongmao=(Element) iterator.next();
String belong=xiongmao.attributeValue("belong");//获得belong属性
System.out.println(belong);
String username=xiongmao.elementText("name");//获得name元素值
System.out.println(username);
//如果有多个name元素,则如下:
for(Iterator iterator2=xiongmao.elementIterator("name");iterator2.hasNext();){
name=(Element) iterator2.next();
String id=name.attributeValue("id");
System.out.println(id);
//通过迭代得到name元素值
System.out.println(name.getText());
System.out.println(name.getData());
}
//得到birthdate元素
String birthdate=xiongmao.elementText("birthdate");
System.out.println(birthdate);
//修改
if(xiongmao.attributeValue("belong").equals("zhangbin")){
//修改belong="zhangbin"的信息
//只能修改一个name元素的值
xiongmao.selectSingleNode("name").setText("baby");
xiongmao.selectSingleNode("height").setText("167");
System.out.println("---修改成功---");
writer=new XMLWriter(new FileWriter(file),format);
writer.write(doc);
writer.close();
flag=true;
break;
}
}
//添加一个xiongmao
if(flag){
Element mao=root.addElement("xiongmao");
mao.addAttribute("belong", "zhangbin1");
Element name_name1=mao.addElement("name");
name_name1.addAttribute("id", "03");
name_name1.setText("sweet cat");
Element name_name2=mao.addElement("name");
name_name2.addAttribute("id", "04");
name_name2.setText("darling");
Element _height=mao.addElement("height");
_height.setText("162");
try {
writer=new XMLWriter(new FileWriter(file),format);
writer.write(doc);
writer.close();
System.out.println("---添加成功---");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
else {
//新建xiongmao2.xml
//创建 document
Document _dDocument=DocumentFactory.getInstance().createDocument();
// 创建下列元素
Element _root=_dDocument.addElement("xiongmaos");//创建根元素
//注意目录元素,不能随便创建 需要与根元素对应
_root.addAttribute("xiongmao", "http://www.baidu.com");
Element mao=_root.addElement("xiongmao");
mao.addAttribute("belong", "zhangbin1");
Element name_name1=mao.addElement("name");
name_name1.addAttribute("id", "03");
name_name1.setText("sweet cat");
Element name_name2=mao.addElement("name");
name_name2.addAttribute("id", "04");
name_name2.setText("darling");
Element _height=mao.addElement("height");
_height.setText("162");
writer=new XMLWriter(new FileWriter(file),format);
writer.write(_dDocument);
writer.close();
System.out.println("---创建成功---");
throw new MyException("file不存在");
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
分享到:
相关推荐
dom4j关于xml读写的例子里面还有dom4j的jar包,对初学者很有帮助
java操作xml源码 操作方式包括:dom和dom...dom4j是开源的性能以及效率最好的,也是一个典型例子。 本源码下下来运行test.java直接运行。 其中包括:采用dom写xml 以及dom方式读XML 采用dom4j写xml 以及dom4j方式读XML
dom4j读写xml!例子比较简单..................................................
使用dom4j读写xml的一个小例子 给大家参考下 代码和使用的包都上传 大家要修改下xml路径即可
2.Java方面,使用dom4j对xml进行操作,包括节点的读取,添加,修改,删除。 3.Flex方面,使用DataGrid呈现数据;使用RemoteObject构建和Java的通信;使用到了验证控件Validator;使用了CSS样式对Alert对话框进行了...
使用Dom4j解析复杂的XML文件,简单的xml文件一个标签对,而复杂的xml文件标签对中还有自己的属性,那么这样的xml文件怎么解析呢?看了我的例子就知道了......
DOM4J很全的学习资料知识点讲解加上例子,总结的很详细。对学习DOM4J很有帮助,可作为入门 也可以作为参考资料
Dom4J采用XPath操纵XML教程及例子,提供入门教程,源代码及有关jar包,并提供对XPath的支持,包含基本的增删改查的操作,由此可举一反三
可以作为参考,不是最好的,谢谢,如遇到什么问题可以讨论,330326231 是我的QQ
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件,下面我来个小例子学习他的使用方法
文件里包含jar包 dom4j-1.6.1.jar,list中放多个map,map里随意放键值对,最后可转换为xml文档,xml文档也可以解析存入list文件中
JAVA利用DOM对XML的相关操作,创建,解析都各有一个例子 其中创建分有规律的节点创建,和不规律的节点创建,并附有详细说明及运行效果图, 上传的资料忘记整理了,工程里面的四个XML是程序生成的,请先删除.
dom4j 的一个简单的例子,主要数通过两种方式对xml文件进行解析的。是一个关于权限的简单的例子。
涵盖了DOM、SAX、JDOM和DOM4J四种方式,读写xml。都给出了具体例子,都是可执行的。
dom4j的用法包括简单的文件的创建、修改,以及xpath的应用 ... chm对dom4j的用法做了详细的说明,html文件对xpath的应用做了详细的说明,java文件是整合的一个例子。 其中chm与xpath是引用的资源。
经常用到对xml的操作,Java里面有dom和dom4j等工具类,但是Javascript就没有,所以自己写了一个,目前算作第一个版本吧。肯定还有很多地方需要改进,如果有需要用的朋友,可以把bug和需要完善改进的地方留言或评论。...
主要介绍了JAVA DOM解析XML文件过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
day02_xml *demo01.App1\App2\App3 使用jaxp开发包中的SAX方式解析xml文档,该方式只能读取文档 *demo4j01.App dom4j CURD XML *domo4j.ex 对dom4j 的封装例子
java 利用了xml报文传输,在java中使用了dom4j解析器进行对xml字符串解析. c#利用XmlDataDocument解析XML报文的简单应用.
三种XML的解析方法,DOM SAX PULL程序例子代码,希望对您有帮助。