dom4j jar包(dom4j 怎么才能加入到eclipse中啊)

本文目录
- dom4j 怎么才能加入到eclipse中啊
- ssh需要的jar包
- org.dom4j.jar build path之后,部分类不能import
- java中怎么导入dom4j-1.6.1.jar
- 怎么用dom4j解析xml文件
- 如何用java生成一个xml文件
- 请问dom4j.jar的作用是什么
- 谁知道dom4j.jar从哪里下载
- 常用的java第三方jar包有哪些附上用途的介绍,最好给官方下载连接,和中文文档
- dom4j的介绍
dom4j 怎么才能加入到eclipse中啊
可以放在电脑的任何一个位置如D:/jar/dom4j.jar
然后eclipse下项目中引入这个jar文件。操作是:
在你的项目上点击右键--》build path--》Configure Builde Path--》Add Externals JARs--》找到你的jar文件(如D:/jar/dom4j.jar)--》一直确定
就可以添加上了,然后程序中就可以用dom4j API 编程了
若你的项目是web 项目 则将你的jar文件直接添加到 workspace中的 你的项目的lib下 同时刷新你的项目也可以达到同样的效果
ssh需要的jar包
cglib-2.1.3.jar
hibernate3.jar
commons-logging-1.0.4.jar
ehcache-1.2.3.jar
hibernate-annotations.jar
hibernate-commons-annotations.jar
hibernate-entitymanager.jar
javassist.jar
spring.jar
aspectjrt.jar
aspectjweaver.jar
cglib-nodep-2.1_3.jar
common-annotations.jar
commons-fileupload-1.2.1.jar
freemarker-2.3.13.jar
ognl-2.6.11.jar
struts2-core-2.1.6.jar
struts2-spring-plugin-2.1.6.jar
xwork-2.1.2.jar
jstl.jar
standard.jar
asm.jar
mysql-connector-java.jar
antlr-2.7.6.jar
commons-collections.jar
dom4j-1.6.1.jar
log4j-1.2.11.jar
jta.jar
如果是spring3 的话,需要根据情况而定,我上面描述的是spring2 被封装在一个spring.jar中,Spring3 以后就被分离成不同的jar文件 有问题的话随时m我~
希望能给你提供帮助
org.dom4j.jar build path之后,部分类不能import
简单点的方法就是1 你先复制好dom4j的jar包2 打开eclipse,按级寻找到lib 项目-----Webcontent-----WEB-INF-----lib3 你将鼠标放在lib上,然后按ctrl+v 4 这就导入了其它方法还有1 右键点项目找到Build path ----Configure build path---Libraries---Add External JARS2 找到你所要导入的包,OK
java中怎么导入dom4j-1.6.1.jar
右键项目-properties-java build path(左侧菜单)-选择libraries
有两种方式,导入jar包实际上就是建立一种链接,并不是copy式的导入
一、导入外部包,add external jars...,这种只是与jar包的绝对路径建立链接,并不会拷贝到项目中。
二、导入包,add jars...,这种需要你事先把jar包拷贝到项目中,通过选择项目下的jar,与jar包的相对路径建立链接。
两种方式下导入的包,jar包名称前面的图标会有区别。
另外,如果jar包名称前面的图标出现黄色叹号,
说明这个jar的路径有问题,需要重新导入。
怎么用dom4j解析xml文件
首先你要准备好dom4j.jar文件,Ta的来源你可以直接去官网下载,当然在百度有也有很多,这个只能自己动下手,Ta张的样子就像下图中那样,并且Ta的运行需要commons-io.jar的支持,
这里列出了一会要用到的文件test.xml,第一幅图显示了xml内的结构,第二个图是解析xml文档的全部代码,先整体看一下,然后对几个关键部分进行分别讲解。
这里定义了一个解析器,并且指定了要解析的xml文件的位置,就像这样:
Document d = reader.read(“src/com/test.xml“);
Element root = d.getRootElement();
得到解析器后又通过getRootElement方法得到了xml文件根节点,有了根节点就可以进行后续的操作了。
以下的第一张图,这里去遍历了跟节点下的第一级所有孩子节点,
for ( Iterator i = root.elementIterator(); i.hasNext(); ) {
Element element = (Element) i.next();
System.out.println(“1--》“+element.getName());
}
在第二个图中,依然是遍历了第一级孩子节点,但是对孩子节点中属性值进行了获取,
for ( Iterator i = root.elementIterator( “student“ ); i.hasNext(); ) {
Element foo = (Element) i.next();
System.out.println(“ 2--》“+foo.getText());
for ( Iterator j = foo.attributeIterator(); j.hasNext(); ) {
Attribute attribute = (Attribute) j.next();
System.out.println(“ 2_1--》“+attribute.getText());
}
}
在第三个图中,对根节点中属性值进行了获取,
for ( Iterator i = root.attributeIterator(); i.hasNext(); ) {
Attribute attribute = (Attribute) i.next();
System.out.println(“ 3--》“+attribute.getText());
}
如何用java生成一个xml文件
一个XML文档,可以先构造一个DOM,然后将DOM转化为xml序列,输出或者生成文件。package test;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class Test {
public static void generate(){
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.newDocument();
document.setXmlVersion(“1.0“);
document.setXmlStandalone(true);
Element root = document.createElement_x(“MobileNet“); //创建根节点
document.appendChild(root); //将根节点添加到Document对象中
Element pageElement = document.createElement_x(“page“); //设置第一个page元素到
pageElement.setAttribute(“name“, “list.jsp“); //设置page节点的name属性
Element methodElement = document.createElement_x(“method“); //设置method节点
methodElement.setTextContent(“get“); //给method设置值
pageElement.appendChild(methodElement); //添加method节点到page节点内
Element displayElement = document.createElement_x(“display“); //设置method节点
displayElement.setTextContent(“list撒旦发放“); //给display设置值
pageElement.appendChild(displayElement); //添加display节点到page节点内
Element request_paramElement = document.createElement_x(“request_param“);
request_paramElement.setTextContent(“request_param1|request_param2“);
pageElement.appendChild(request_paramElement);
root.appendChild(pageElement);
pageElement = document.createElement_x(“page“); //设置第二个page元素到
pageElement.setAttribute(“name“, “content.jsp“); //设置page节点的name属性
methodElement = document.createElement_x(“method“);
methodElement.setTextContent(“post“);
pageElement.appendChild(methodElement);
displayElement = document.createElement_x(“display“);
displayElement.setTextContent(“content“);
pageElement.appendChild(displayElement);
Element url_titleElement = document.createElement_x(“url_title“); //设置url_title节点
url_titleElement.setTextContent(“title,publisher,published_calendar“); //给url_title设置值
pageElement.appendChild(url_titleElement); //添加url_title节点到page节点内
root.appendChild(pageElement); //将page段加人根节点内
TransformerFactory transFactory = TransformerFactory.newInstance(); //开始把Document映射到文件
Transformer transFormer = transFactory.newTransformer();
DOMSource domSource = new DOMSource(document); //设置输出结果
File file = new File(“MobileNetRule.xml“); //生成xml文件
if (!file.exists()) {
file.createNewFile();
}
FileOutputStream out = new FileOutputStream(file); //文件输出流
StreamResult xmlResult = new StreamResult(out); //设置输入源
transFormer.transform(domSource, xmlResult); //输出xml文件
System.out.println(file.getAbsolutePath()); //测试文件输出的路径
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
t.setOutputProperty(“{/encoding/}“,“GB2312/“);
ByteArrayOutputStream boc = new ByteArrayOutputStream();
t.transform(new DOMSource(document), new StreamResult(boc));
String xmlstring = boc.toString();
System.out.println(xmlstring);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String args){
Test.generate();
}
}
请问dom4j.jar的作用是什么
hibernate2.jar:
Hibernate的库,没有什么可说的,必须使用的jar包
cglib-asm.jar:
CGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库,必须使用的jar包
dom4j.jar:
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。在IBM developerWorks上面可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,dom4j无论在那个方面都是非常出色的。我早在将近两年之前就开始使用dom4j,直到现在。如今你可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。这是必须使用的jar包, Hibernate用它来读写配置文件。
odmg.jar:
ODMG是一个ORM的规范,Hibernate实现了ODMG规范,这是一个核心的库,必须使用的jar包。
commons-collections.jar:
Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大。必须使用的jar包。
commons-beanutils.jar:
Apache Commons包中的一个,包含了一些Bean工具类类。必须使用的jar包。
commons-lang.jar:
Apache Commons包中的一个,包含了一些数据类型工具类,是java.lang.*的扩展。必须使用的jar包。
commons-logging.jar:
Apache Commons包中的一个,包含了日志功能,必须使用的jar包。这个包本身包含了一个Simple Logger,但是功能很弱。在运行的时候它会先在CLASSPATH找log4j,如果有,就使用log4j,如果没有,就找JDK1.4带的 java.util.logging,如果也找不到就用Simple Logger。commons-logging.jar的出现是一个历史的的遗留的遗憾,当初Apache极力游说Sun把log4j加入JDK1.4,然而JDK1.4项目小组已经接近发布JDK1.4产品的时间了,因此拒绝了Apache的要求,使用自己的java.util.logging,这个包的功能比log4j差的很远,性能也一般。
后来Apache就开发出来了commons-logging.jar用来兼容两个 logger。因此用commons-logging.jar写的log程序,底层的Logger是可以切换的,你可以选择log4j, java.util.logging或者它自带的Simple Logger。不过我仍然强烈建议使用log4j,因为log4j性能很高,log输出信息时间几乎等于System.out,而处理一条log平均只需要5us。你可以在Hibernate的src目录下找到Hibernate已经为你准备好了的log4j的配置文件,你只需要到Apache 网站去下载log4j就可以了。commons-logging.jar也是必须的jar包。
使用Hibernate必须的jar包就是以上的这几个,剩下的都是可选的。
ant.jar:
Ant编译工具的jar包,用来编译Hibernate源代码的。如果你不准备修改和编译Hibernate源代码,那么就没有什么用,可选的jar包
optional.jar:
Ant的一个辅助包。
c3p0.jar:
C3PO是一个数据库连接池,Hibernate可以配置为使用C3PO连接池。如果你准备用这个连接池,就需要这个jar包。
proxool.jar:
也是一个连接池,同上。
commons-pool.jar, commons-dbcp.jar:
DBCP数据库连接池,Apache的Jakarta组织开发的,Tomcat4的连接池也是DBCP。
实际上Hibernate自己也实现了一个非常非常简单的数据库连接池,加上上面3个,你实际上可以在Hibernate上选择4种不同的数据库连接池,选择哪一个看个人的偏好,不过DBCP可能更通用一些。另外强调一点,如果在EJB中使用Hibernate,一定要用App Server的连接池,不要用以上4种连接池,否则容器管理事务不起作用。
connector.jar:
JCA 规范,如果你在App Server上把Hibernate配置为Connector的话,就需要这个jar。不过实际上一般App Server肯定会带上这个包,所以实际上是多余的包。
jaas.jar:
JAAS是用来进行权限验证的,已经包含在JDK1.4里面了。所以实际上是多余的包。
jcs.jar:
如果你准备在Hibernate中使用JCS的话,那么必须包括它,否则就不用。
jdbc2_0-stdext.jar:
JDBC2.0的扩展包,一般来说数据库连接池会用上它。不过App Server都会带上,所以也是多余的。
jta.jar:
JTA规范,当Hibernate使用JTA的时候需要,不过App Server都会带上,所以也是多余的。
junit.jar:
Junit包,当你运行Hibernate自带的测试代码的时候需要,否则就不用。
xalan.jar, xerces.jar, xml-apis.jar:
Xerces是XML解析器,Xalan是格式化器,xml-apis实际上是JAXP。一般App Server都会带上,JDK1.4也包含了解析器,不过不是Xerces,是Crimson,效率比较差,不过Hibernate用XML只不过是读取配置文件,性能没什么紧要的,所以也是多余的。
谁知道dom4j.jar从哪里下载
DOM4J官方网站:
http://www.dom4j.org/
DOM4J下载(SourceForge)
http://www.dom4j.org/download.html
http://sourceforge.net/projects/dom4j
Dom4j的使用(全而好的文章):
http://xhy0422.javaeye.com/blog/50235
推荐一个APACHE的开源项目Digester,对象化解析XML
http://commons.apache.org/digester/
常用的java第三方jar包有哪些附上用途的介绍,最好给官方下载连接,和中文文档
commons-digester.jar
Digester基于规则的XML文档解析,主要用于XML到Java对象的映射.
commons-beanutils.jar
提供对Java 反射和自省API的包装.
aspectjweaver.jar
用于在Spring 2.0中集成AspectJ AspectJ LTW织入器
ognl.jar
OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功 能。它使用相同的表达式去存取对象的属性。
hibernate2依赖的一些包
hibernate2.jar
Hibernate的库,没有什么可说的,必须使用的jar包
cglib-asm.jar:
CGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库,必须使用的jar包
dom4j.jar:
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。在IBM developerWorks上面可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,dom4j无论在那个方面都是非常出色的。我早在将近两年之前就开始使用dom4j,直到现在。如今你可以看到越 来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。这是必须使用的jar 包,Hibernate用它来读写配置文件。
odmg.jar:
ODMG是一个ORM的规范,Hibernate实现了ODMG规范,这是一个核心的库,必须使用的jar包。
commons-collections.jar:
Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大。必须使用的jar包。
commons-beanutils.jar:
Apache Commons包中的一个,包含了一些Bean工具类类。必须使用的jar包。
commons-lang.jar:
Apache Commons包中的一个,包含了一些数据类型工具类,是java.lang.*的扩展。必须使用的jar包。
commons-logging.jar:
Apache Commons包中的一个,包含了日志功能,必须使用的jar包。这个包本身包含了一个Simple Logger,但是功能很弱。在运行的时候它会先在CLASSPATH找log4j,如果有,就使用log4j,如果没有,就找JDK1.4带的 java.util.logging,如果也找不到就用Simple Logger。commons-logging.jar的出现是一个历史的的遗留的遗憾,当初Apache极力游说Sun把log4j加入JDK1.4, 然而JDK1.4项目小组已经接近发布JDK1.4产品的时间了,因此拒绝了Apache的要求,使用自己的java.util.logging,这个包 的功能比log4j差的很远,性能也一般。
后来Apache就开发出来了commons-logging.jar用来兼容两个logger。因此用commons-logging.jar 写的log程序,底层的Logger是可以切换的,你可以选择log4j,java.util.logging或者它自带的Simple Logger。不过我仍然强烈建议使用log4j,因为log4j性能很高,log输出信息时间几乎等于System.out,而处理一条log平均只需 要5us。你可以在Hibernate的src目录下找到Hibernate已经为你准备好了的log4j的配置文件,你只需要到Apache 网站去下载log4j就可以了。commons-logging.jar也是必须的jar包。
使用Hibernate必须的jar包就是以上的这几个,剩下的都是可选的。
ant.jar:
Ant编译工具的jar包,用来编译Hibernate源代码的。如果你不准备修改和编译Hibernate源代码,那么就没有什么用,可选的jar包
optional.jar:
Ant的一个辅助包。
c3p0.jar:
C3PO是一个数据库连接池,Hibernate可以配置为使用C3PO连接池。如果你准备用这个连接池,就需要这个jar包。
proxool.jar:
也是一个连接池,同上。
commons-pool.jar,
commons-dbcp.jar:
DBCP数据库连接池,Apache的Jakarta组织开发的,Tomcat4的连接池也是DBCP。
实际上Hibernate自己也实现了一个非常非常简单的数据库连接池,加上上面3个,你实际上可以在Hibernate上选择4种不同的数据库 连接池,选择哪一个看个人的偏好,不过DBCP可能更通用一些。另外强调一点,如果在EJB中使用Hibernate,一定要用App Server的连接池,不要用以上4种连接池,否则容器管理事务不起作用。
connector.jar:
JCA 规范,如果你在App Server上把Hibernate配置为Connector的话,就需要这个jar。不过实际上一般App Server肯定会带上这个包,所以实际上是多余的包。
jaas.jar:
JAAS是用来进行权限验证的,已经包含在JDK1.4里面了。所以实际上是多余的包。
jcs.jar:
如果你准备在Hibernate中使用JCS的话,那么必须包括它,否则就不用。
jdbc2_0-stdext.jar:
JDBC2.0的扩展包,一般来说数据库连接池会用上它。不过App Server都会带上,所以也是多余的。
jta.jar:
JTA规范,当Hibernate使用JTA的时候需要,不过App Server都会带上,所以也是多余的。
junit.jar:
Junit包,当你运行Hibernate自带的测试代码的时候需要,否则就不用。
xalan.jar, xerces.jar, xml-apis.jar:
Xerces是XML解析器,Xalan是格式化器,xml-apis实际上是JAXP。一般App Server都会带上,JDK1.4也包含了解析器,不过不是Xerces,是Crimson,效率比较差,不过Hibernate用XML只不过是读取 配置文件,性能没什么紧要的,所以也是多余的。
antlr.jar
语法生成工具详见
dom4j的介绍
本文主要讨论了用dom4j解析XML的基础问题,包括建立XML文档,添加、修改、删除节点,以及格式化(美化)输出和中文问题。可作为dom4j的入门资料。 dom4j是sourceforge.net上的一个开源项目,主要用于对XML的解析。从2001年7月发布第一版以来,已陆续推出多个版本,目前最高版本为1.6。
dom4j专门针对Java开发,使用起来非常简单、直观,在Java界,dom4j正迅速普及。
dom4j1.5的完整版大约13M,是一个名为dom4j-1.5.zip的压缩包,解压后有一个dom4j-1.5.jar文件,这就是应用时需要引入的类包,另外还有一个jaxen-1.1-beta-4.jar文件,一般也需要引入,否则执行时可能抛java.lang.NoClassDefFoundError: org/jaxen/JaxenException异常,其他的包可以选择用之。 为了述说方便,先看一个XML文档,之后的操作均以此文档为基础。
holen.xml
《?xml version=1.0 encoding=UTF-8?》
《books》
《!--This is a test for dom4j, holen, 2004.9.11--》
《book show=yes》
《title》Dom4j Tutorials《/title》
《/book》
《book show=yes》
《title》Lucene Studing《/title》
《/book》
《book show=no》
《title》Lucene in Action《/title》
《/book》
《owner》O’Reilly《/owner》
《/books》
这是一个很简单的XML文档,场景是一个网上书店,有很多书,每本书有两个属性,一个是书名,一个为是否展示[show],最后还有一项是这些书的拥有者[owner]信息。 /**
* 建立一个XML文档,文档名由输入属性决定
* @param filename 需建立的文件名
* @return 返回操作结果, 0表失败, 1表成功
*/
public int createXMLFile(String filename){
/** 返回操作结果, 0表失败, 1表成功 */
int returnValue = 0;
/** 建立document对象*/
Document document = DocumentHelper.createDocument();
/** 建立XML文档的根books */
Element booksElement = document.addElement(books);
/** 加入一行注释 */
booksElement.addComment(This is a test for dom4j, holen, 2004.9.11);
/** 加入第一个book节点 */
Element bookElement = booksElement.addElement(book);
/** 加入show属性内容 */
bookElement.addAttribute(show,yes);
/** 加入title节点 */
Element titleElement = bookElement.addElement(title);
/** 为title设置内容 */
titleElement.setText(Dom4j Tutorials);
/** 类似的完成后两个book */
bookElement = booksElement.addElement(book);
bookElement.addAttribute(show,yes);
titleElement = bookElement.addElement(title);
titleElement.setText(Lucene Studing);
bookElement = booksElement.addElement(book);
bookElement.addAttribute(show,no);
titleElement = bookElement.addElement(title);
titleElement.setText(Lucene in Action);
/** 加入owner节点 */
Element ownerElement = booksElement.addElement(owner);
ownerElement.setText(O’Reilly);
try{
/** 将document中的内容写入文件中 */
XMLWriter writer = new XMLWriter(new FileWriter(new File(filename)));
writer.write(document);
writer.close();
/** 执行成功,需返回1 */
returnValue = 1;
}catch(Exception ex){
ex.printStackTrace();
}
return returnValue;
}
说明:
Document document = DocumentHelper.createDocument();
通过这句定义一个XML文档对象。
Element booksElement = document.addElement(books);
通过这句定义一个XML元素,这里添加的是根节点。
Element有几个重要的方法:
l addComment:添加注释
l addAttribute:添加属性
l addElement:添加子元素
最后通过XMLWriter生成物理文件,默认生成的XML文件排版格式比较乱,可以通过OutputFormat类的createCompactFormat()方法或createPrettyPrint()方法格式化输出,默认采用createCompactFormat()方法,显示比较紧凑,这点将在后面详细谈到。
生成后的holen.xml文件内容如下:
《?xml version=1.0 encoding=UTF-8?》
《books》《!--This is a test for dom4j, holen, 2004.9.11--》《book show=yes》《title》Dom4j Tutorials《/title》《/book》《book show=yes》《title》Lucene Studing《/title》《/book》《book show=no》《title》Lucene in Action《/title》《/book》《owner》O’Reilly《/owner》《/books》 有三项修改任务,依次为:
l 如果book节点中show属性的内容为yes,则修改成no
l 把owner项内容改为Tshinghua,并添加date节点
l 若title内容为Dom4j Tutorials,则删除该节点
/**
* 修改XML文件中内容,并 一个新文件
* 重点掌握dom4j中如何添加节点,修改节点,删除节点
* @param filename 修改对象文件
* @param newfilename 修改后 该文件
* @return 返回操作结果, 0表失败, 1表成功
*/
public int ModiXMLFile(String filename,String newfilename){
int returnValue = 0;
try{
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File(filename));
/** 修改内容之一: 如果book节点中show属性的内容为yes,则修改成no */
/** 先用xpath查找对象 */
List list = document.selectNodes(/books/book/@show );
Iterator iter = list.iterator();
while(iter.hasNext()){
Attribute attribute = (Attribute)iter.next();
if(attribute.getValue().equals(yes)){
attribute.setValue(no);
}
}
/**
* 修改内容之二: 把owner项内容改为Tshinghua
* 并在owner节点中加入date节点,date节点的内容为2004-09-11,还为date节点添加一个属性type
*/
list = document.selectNodes(/books/owner );
iter = list.iterator();
if(iter.hasNext()){
Element ownerElement = (Element)iter.next();
ownerElement.setText(Tshinghua);
Element dateElement = ownerElement.addElement(date);
dateElement.setText(2004-09-11);
dateElement.addAttribute(type,Gregorian calendar);
}
/** 修改内容之三: 若title内容为Dom4j Tutorials,则删除该节点 */
list = document.selectNodes(/books/book);
iter = list.iterator();
while(iter.hasNext()){
Element bookElement = (Element)iter.next();
Iterator iterator = bookElement.elementIterator(title);
while(iterator.hasNext()){
Element titleElement=(Element)iterator.next();
if(titleElement.getText().equals(Dom4j Tutorials)){
bookElement.remove(titleElement);
}
}
}
try{
/** 将document中的内容写入文件中 */
XMLWriter writer = new XMLWriter(new FileWriter(new File(newfilename)));
writer.write(document);
writer.close();
/** 执行成功,需返回1 */
returnValue = 1;
}catch(Exception ex){
ex.printStackTrace();
}
}catch(Exception ex){
ex.printStackTrace();
}
return returnValue;
}
说明:
List list = document.selectNodes(/books/book/@show );
list = document.selectNodes(/books/book);
上述代码通过xpath查找到相应内容。
通过setValue()、setText()修改节点内容。
通过remove()删除节点或属性。 默认的输出方式为紧凑方式,默认编码为UTF-8,但对于我们的应用而言,一般都要用到中文,并且希望显示时按自动缩进的方式的显示,这就需用到OutputFormat类。
/**
* 格式化XML文档,并解决中文问题
* @param filename
* @return
*/
public int formatXMLFile(String filename){
int returnValue = 0;
try{
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File(filename));
XMLWriter writer = null;
/** 格式化输出,类型IE浏览一样 */
OutputFormat format = OutputFormat.createPrettyPrint();
/** 指定XML编码 */
format.setEncoding(GBK);
writer= new XMLWriter(new OutputStreamWriter(new FileOutputStream(filename),format.getEncoding()),format);
writer.write(document);
writer.close();
/** 执行成功,需返回1 */
returnValue = 1;
}catch(Exception ex){
ex.printStackTrace();
}
return returnValue;
}
说明:
OutputFormat format = OutputFormat.createPrettyPrint();
这句指定了格式化的方式为缩进式,则非紧凑式。
format.setEncoding(GBK);
指定编码为GBK。
XMLWriter writer = new XMLWriter(new FileWriter(new File(filename)),format);
这与前面两个方法相比,多加了一个OutputFormat对象,用于指定显示和编码方式。 前面提出的方法都是零散的,下面给出完整类代码。
Dom4jDemo.java
package com.holen.dom4j;
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;

更多文章:
易语言网页api接口怎么调用(易语言,怎么读取网页json的api)
2026年10月11日 08:00
majority of(the majority of 和 a majority of的区别以及用法例句)
2026年10月11日 07:40
another time(another time和other time的区别)
2026年10月11日 05:00








