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文档的创建、读取、修改和保存。对于XML处理,DOM4J提供了一种高效且易于使用的解决方案,尤其适合Java开发者。标签"dom4j"和"xml"进一步强调了这个示例是关于使用DOM4J库处理XML文档...
在这个“dom4j解析xml例子”中,我们将深入探讨DOM4J如何帮助开发者在Java环境中有效地处理XML数据。 首先,我们需要了解XML(Extensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置...
例子比较简单”的描述中,我们可以推断出这个压缩包包含了一些关于如何使用DOM4J进行XML读写的基本示例。以下是对这些关键知识点的详细解释: 1. **XML解析**:DOM4J支持两种解析XML文档的方式:SAX(Simple API ...
Dom4j因其简单易用、高效性能以及对DOM(Document Object Model)和SAX(Simple API for XML)的扩展支持而备受青睐。 1. **DOM与DOM4j的区别** DOM是W3C定义的一种标准模型,用于表示XML文档的树结构。然而,DOM...
除了基本的读写操作,DOM4J还支持XPath查询,这是一种强大的定位XML元素的方式。通过`XPathExpression`和`XPathFactory`,你可以编写XPath表达式来查找XML文档中的特定节点。例如,`//elementName`可以匹配所有名为`...
**使用DOM4J对XML的读写** DOM4J是一个非常强大的Java库,专门用于处理XML文档。它提供了丰富的API,使得XML的读取、创建、修改和解析变得简单易行。相较于JDOM,DOM4J确实提供了更多的功能,虽然在学习曲线方面...
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单且灵活的API,使得XML解析、...这只是一个简单的例子,DOM4J库还提供了更高级的功能,如XPath查询、事件驱动的处理模式等,可以满足更复杂的XML处理需求。
总之,DOM4J是处理XML的强大工具,通过使用这个库,开发者可以方便地对XML进行读写、查询和修改。这个"dom4j_XML.rar"压缩包中的实例教程,对于学习和掌握DOM4J的操作技巧,无疑是一份宝贵的资源。
- **XML Schema和DTD验证**:DOM4J还支持对XML文档进行Schema和DTD验证,确保数据的完整性和正确性。 - **XPath查询**:DOM4J支持XPath表达式,使得复杂的数据定位和提取更加容易。 - **事件驱动的解析**:除了基于...
java操作xml源码 操作方式包括:dom和dom...dom4j是开源的性能以及效率最好的,也是一个典型例子。 本源码下下来运行test.java直接运行。 其中包括:采用dom写xml 以及dom方式读XML 采用dom4j写xml 以及dom4j方式读XML
3. **修改XML文档**:通过DOM4J,可以方便地对XML文档进行修改,比如插入、删除、替换节点,或者修改属性值。 4. **查询XML文档**:DOM4J支持XPath表达式,这是一种强大的查询XML文档的语言,能够快速定位到文档中...
在这个小例子中,我们将探讨如何利用DOM4J来实现XML文件的读写操作。首先,我们需要确保引入了必要的依赖,包括`dom4j-1.6.1.jar`和`jaxen-1.1-beta-6.jar`这两个库。`jaxen`库是DOM4J中解析XPath表达式所必需的。 ...
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单而灵活的API,使得XML解析、创建、修改和查询变得容易。在本实例中,我们将深入探讨如何使用DOM4J解析XML,并利用这些数据连接Oracle数据库进行数据操作...
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的解析、创建、修改和查询变得简单。在本例中,我们将深入探讨如何使用DOM4J来解析XML文件。 首先,我们需要理解XML(Extensible ...
### DOM4J解析XML DOM4J是一种Java语言下的轻量级XML处理库,它可以方便地解析、修改和创建...无论是简单的文件读写还是复杂的XML文档构建,DOM4J都能胜任。希望本教程能够帮助大家更好地理解和掌握DOM4J的应用技巧。
### DOM4J解析XML知识点详解 #### 一、DOM4J简介 ...通过对DOM4J库的学习和实践,可以高效地处理各种复杂的XML文档需求。无论是创建新的XML文件还是从现有的XML文件中提取数据,DOM4J都能提供强大的支持。
XML(eXtensible Markup Language)是一种用于...对于初学者来说,通过上述的小例子,可以快速上手并深入理解DOM4J在XML处理中的应用。通过不断的实践和学习,开发者可以充分利用DOM4J来满足各种复杂的XML处理需求。
本篇将通过一个实际的例子来探讨如何使用Dom4j解析XML配置文件。 首先,我们需要了解DOM4J的基本概念。DOM(Document Object Model)是一种用于表示XML或HTML文档的标准模型,而Dom4j是基于DOM的,但它比标准的DOM...
下面是一个简单的例子,展示了如何使用DOM4J读取一个XML文件: ```java package com.hsinghsu.testXML; import java.io.File; import java.util.Iterator; import org.dom4j.Attribute; import org.dom4j.Document...
### Dom4j遍历解析XML知识点详解 #### 一、Dom4j简介及环境搭建 Dom4j(Document Object Model for Java)是一个Java语言的开源XML API,它提供了非常便捷...这种方式非常适合于需要对XML数据进行复杂递归处理的情况。