操作XML-dom4j
首先是到dom4j的官网dom4j文件包,下载之后解压如下所示。

在根目录中,找到dom4j-1.6.1jar包,加入到eclipse中的lib文件下,最后build path一下,即可使用相关的方法。
1、创建XML文档
1.1创建XML文档对象
使用DocumentHelper类中的createDocument()方法,创建一个XML文档对象,代码如下:
Document document = DocumentHelper.createDocument();
另外也可以使用DocumentFactory对象也可以创建一个XML文档对象。
DocumentFactory documentFactory=DocumentFactory.getInstance();
document=documentFactory.createDocument();
1.2创建根节点
(1)使用DocumentHelper对象的createElement()方法创建一个普通的节点信息。
public static Element createElement(String name)
(2)Document对象的setRootElement()方法
public void setRootElement(Element element) ;
例如:创建一个值 包括根节点的XmL文档的具体代码
Document document = DocumentHelper.createDocument();
Element rootElement = DocumentHelper.createElement("person");
document.setRootElement(rootElement);
rootElement.addComment("这是根节点");//添加注释
2、解析XML文档
(1)、加载XML文件
SAXReader saxReader =new SAXReader();
document = saxReader.read(new File(filename));
(2)、获取根节点
Element root = dom.getRootElement();
(3)、遍历节点信息
for (Iterator i =root.elementIterator(); i.hasNext();) {
Element el =(Element) i.next();
if(catNameEn.equals(el.elementTextTrim("engName"))){
flag = false;
break;
}
}
下面就以dom4j解析本博客的文章信息,
首先分析网页的xml文件格式,打开本博客的“订阅”链接,在网页显示xml文件格式如下:

然后在打开entry节点,如下所示:

分析一下:
1、要读取网页数据,首先需要创建一个URL对象,用本博客的“订阅”链接创建URL对象,代码如下:
URL url = new URL("http://feed.cnblogs.com/blog/u/120107/rss");
SAXReader reader = new SAXReader();
Document document = reader.read(url);
2、获取XML文档的根节点,确定根节点的数量,然后遍历内容,代码如下:
Element rootElement = document.getRootElement();
List list_item = rootElement.elements("entry");
3、遍历XML文件的数据,代码如下:
if (list_item.size() > 0) {
list = new ArrayList<Object>();
}
for (int i = 0; i < list_item.size(); i++) {
Element item = (Element) list_item.get(i);
System.out.println("id:" + item.element("id").getText());
System.out.println("title:" + item.element("title").getText());
System.out.println("summary:" + item.element("summary").getText());
System.out.println("published:" + item.element("published").getText());
System.out.println("updated:" + item.element("updated").getText());
System.out.println("name:" + item.element("author").element("name").getText());
System.out.println("uri:" + item.element("author").element("uri").getText());
System.out.println("************************");
System.out.println();
System.out.println();
System.out.println();
System.out.println();
}
最后整个测试代码如下:
import java.io.File;
import java.io.FileWriter;
import java.net.URL;
import java.util.ArrayList;
import java.util.List; 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; /***
* 使用dom4j开源项目,需要引入dom4j-1.6.1.jar和jaxen-1.1-beta-6.jar包
*
* @author ouxu
*
*/
public class XmlHelper {
public void readXmlByUrl() throws Exception {
List<Object> list;
URL url = new URL("http://feed.cnblogs.com/blog/u/120107/rss");
SAXReader reader = new SAXReader();
Document document = reader.read(url);
Element rootElement = document.getRootElement();
List list_item = rootElement.elements("entry");
if (list_item.size() > 0) {
list = new ArrayList<Object>();
}
for (int i = 0; i < list_item.size(); i++) {
Element item = (Element) list_item.get(i);
System.out.println("id:" + item.element("id").getText());
System.out.println("title:" + item.element("title").getText());
System.out.println("summary:" + item.element("summary").getText());
System.out.println("published:" + item.element("published").getText());
System.out.println("updated:" + item.element("updated").getText());
System.out.println("name:" + item.element("author").element("name").getText());
System.out.println("uri:" + item.element("author").element("uri").getText());
System.out.println("************************");
System.out.println();
System.out.println();
System.out.println();
System.out.println();
} } public static void main(String[] args) {
try {
new XmlHelper().readXmlByUrl();
} catch (Exception e) {
e.printStackTrace();
}
}
}
测试代码,运行通过,部分结果如下(由于数据比较多,一屏数据显示不完)

ok,目前,学习了dom4j项目的使用,也成功完成了一个小小的应用。
操作XML-dom4j的更多相关文章
- 使用dom4j操作XML
DOM4J介绍 DOM4J是使用Java语言编写的,用于读写及操作XML的一套组件,DOM4J同时具有DOM修改文件的优点和SAX读取快速的优点. DOM4J的使用 首先下载dom4j的JAR包,我用 ...
- Strus2第一次课:dom4j操作xml
先从底层的xml操作技术记录: 当我们新建一个项目,什么架包都没加入的时候,java提供了 org.w3c.dom给我们操作xml里面的元素 import org.w3c.dom.Document; ...
- java使用dom4j和XPath解析XML与.net 操作XML小结
最近研究java的dom4j包,使用 dom4j包来操作了xml 文件 包括三个文件:studentInfo.xml(待解析的xml文件), Dom4jReadExmple.java(解析的主要类), ...
- Java操作XML文件 dom4j 篇
在项目中,我们很多都用到了xml文件,无论是参数配置还是与其它系统的数据交互.今天就来讲一下Java 中使用dom4j来操作XML文件. 我们需要引入的包: //文件包 import java.io. ...
- xml解析 使用dom4j操作xml
使用dom4j操作xml 1 导入 dom4j,的jar包 2 指定要解析的XML文件 SAXReader sr=new SAXReader(); Document document= sr.r ...
- Dom4j完整教程,操作XML教程
目录 1.DOM4J简介 2.XML文档操作1 2.1.读取XML文档: 2.2.获取根节点 2.3.. 新增一个节点以及其下的子节点与数据 2.4. 写入XML文件 2. 5. 遍历xml节点 2. ...
- 使用dom4j处理xml操作xml数据
使用dom4j处理xml操作xml数据 示例代码: public class TestDom4j { public static void main(String[] args) { String x ...
- 使用Dom4j操作XML数据
--------------siwuxie095 dom4j 是一个非常优秀的 Java XML 的 API, 用来读写 XML 文件 和操作 ...
- DOM4J操作XML(包括封装和解析)
DOM4J操作XML(包括封装和解析) 先来看看dom4j中相应XML的DOM树建立的继承关系 针对于XML标准定义.相应于图2-1列出的内容,dom4j提供了下面实现: 以下给出一个详细事例: pa ...
- XML文件操作之dom4j
能够操作xml的api还是挺多的,DOM也是可以的,不过在此记录下dom4j的使用,感觉确实挺方便的 所需jar包官网地址:http://www.dom4j.org/dom4j-1.6.1/ dom4 ...
随机推荐
- Python数据整合与数据准备-BigGorilla实例应用
参考文档:http://www.biggorilla.org/walkt/ 一.BigGorilla应用主要步骤 如下图: 二.实例应用 1.数据获取 urllib是非常受欢迎的用于在网络上读取数据的 ...
- orchard project 本地化
http://orchardproject.net/localization 本地化 果园的本地化管理是托管在一个外部服务( Crowdin), 的项目.公众和贡献是受欢迎的! 如何做出贡献 注册上 ...
- 文档对象模型-DOM(一)
首先看一下DOM树结构: 每个节点都是一个对象,拥有方法和属性. 脚本可以访问以及更新DOM树(不是源代码). 针对DOM树的修改都会反映到浏览器. 访问并更新DOM树需要两个步骤: 一.定位到与 ...
- docker实战——Docker本地私有镜像仓库Harbor搭建及配置
Harbor介绍 Docker容器应用的开发和运行离不开可靠的镜像管理,虽然docker官方提供了公共的镜像仓库(Docker Hub),但是从安全和效率等方面考虑,部署我们私有环境内的Registr ...
- [转]SQL Server 性能调优(io)
目录 诊断磁盘io问题 常见的磁盘问题 容量替代了性能 负载隔离配置有问题 分区对齐配置有问题 总结 关于io这一块,前面的东西如磁盘大小,磁盘带宽,随机读取写入,顺序读取写入,raid选择,DA ...
- 使用Vmware虚拟机部署Swift开发环境之Mac OSX系统安装
一.使用VMware虚拟机部署Swift开发环境所需工具: Vmware Workstation 10.0虚拟机软件VM安装Mac解锁工具Unlock苹果操作系统(Mac OS X Mavericks ...
- Android开发之Is Library篇
一.生活场景描述 由于公司有一个项目开发的时间比较长,项目里堆砌的代码也比较多,并且有些功能在给不同客户发布的时候有些功能还不需要,这样功能模块分离就很有必要了. 所以,Library就被推到了前台, ...
- 【Python3 爬虫】12_代理IP的使用
我们在爬取页面的时候,如果长时间使用一个网址去爬取某个网站,就会受爬去限制,此时,我们引用了代理IP,IP随时在变化,也就不会被限制了 一下是国内提供免费代理IP的地址:http://www.xici ...
- Linux中如何配置IP
与网络相关的文件:1) /etc/sysconfig/network 设置主机名称及能否启动Network2) /etc/sysconfig/network-scripts/ifcfg-eth ...
- 简体字冯|docker-安装docker私有库
原创文章,转载请注明出处. 作者:简体字丶冯; QQ:564372931 安装docker 各终端安装docker 教程 菜鸟docker教程 就挺好,本着不重复造轮子的原则就不深入了,自己学习. 如 ...