`

dom4j读XML

阅读更多

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;

public class ReadXMLByDom {
    public static void main(String [] args){
        ReadXMLByDom r = new ReadXMLByDom();
        r.readXMLAllAttr();
        r.readXMLAllElement();
        r.readXMLAttr();
        r.readXMLElement();
    }
   
    //第一种:根据属性来查找
    //结果为:<book id="2"><Name>Linux</Name><price>100</price></book>
    public void readXMLAttr() {
        String str = "<books><book id='1'><Name>Java</Name><price>100</price></book>";
        str = str
                + "<book id='2'><Name>Linux</Name><price>100</price></book></books>";
        // 生成一个Document
        Document document = null;
        try {
            document = DocumentHelper.parseText(str);
            Element book = (Element) document
                    .selectSingleNode("/books/book[@id='2']");
            System.out.println(book.asXML());
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

    //第二种:根据节点名来查找
    //结果为:Java,Linux,
    public void readXMLElement() {
        String str = "<books><book id='1'><Name>Java</Name><price>100</price></book>";
        str = str
                + "<book id='2'><Name>Linux</Name><price>100</price></book></books>";
        Document document = null;
        try {
            document = DocumentHelper.parseText(str);
            List names = document.selectNodes("//Name");// 记得这边是双斜杠且有区分大小写
            for (int i = 0; i < names.size(); i++) {
                System.out.print(((Element) names.get(i)).getText() + ",");
            }
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

    //第三种:遍历整个XML取得属于指定类型节点的记录
    //结果为:1 Java 100
    //       2 Linux 100
    public void readXMLAllElement() {
        String str = "<books><book id='1'><Name>Java</Name><price>100</price></book>";
        str = str
                + "<book id='2'><Name>Linux</Name><price>100</price></book></books>";
        Document document = null;
        try {
            document = DocumentHelper.parseText(str);
            Iterator it = document.getRootElement().elementIterator();
            Element element = null;
            while (it.hasNext()) {
                element = (Element) it.next();
                if (element.getName().equals("book")) {
                    System.out.print(element.attributeValue("id") + " ");
                    System.out.print(element.element("Name").getText() + " ");
                    System.out.println(element.element("price").getText());
                }
            }
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

    //第四种:遍历所有属性
    //结果为:id:1
    //       name:Java
    //       price:120
    public void readXMLAllAttr() {
        String str = "<book id='1' name='Java' price='120'/>";
        Document document;
        try {
            document = DocumentHelper.parseText(str);
            Iterator attributes = document.getRootElement().attributeIterator();
            while (attributes.hasNext()) {
                Attribute attribute = (Attribute) attributes.next();
                System.out.println(attribute.getName() + ":"
                        + attribute.getValue());
            }
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

}


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/qking93415981/archive/2007/09/14/1785114.aspx

分享到:
评论

相关推荐

    dom4j 读xml灰藏有用的jar包

    这篇名为“dom4j 读xml灰藏有用的jar包”的博客文章可能详细介绍了如何利用DOM4J来读取和操作XML文件,而“student.xml”可能是博主用于示例的一个XML文件。 在处理XML时,DOM4J主要有以下几个关键知识点: 1. **...

    读写超大类xml文件,使用dom4j读写xml文件的工具类

    基于dom4j的读写xml文件的工具包。封装了dom4j操作xml文档的常和方法。 支持两种读写方法。1:针对小文件的读取整个文档,2:针对大文件的,逐行读取。读到几百M文件毫无压力。

    dom4j读写xml文件

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的读取、创建、修改和解析变得简单易行。在本文中,我们将深入探讨DOM4J如何实现XML文件的读取和写入,并通过一个实际的`...

    使用DOM4j解析XML文件

    ### 使用DOM4j解析XML文件:提升开发效率与代码可读性 在现代软件开发中,XML(Extensible Markup Language)是一种广泛使用的数据交换格式,它以人类可读的文本形式存储结构化信息。然而,如何高效、准确地解析XML...

    DOM4J解析XML代码

    在使用DOM4J解析XML文件之前,需要导入DOM4J相关的jar包,通常版本为1.6.1。 #### DOM4J常用对象 - **SAXReader**: 用于读取XML文件,并将其转换成Document对象。 - **Document**: XML文档对象树,类似于HTML文档...

    DOM4J格式化XML

    【标题】"DOM4J格式化XML"是一个关于XML处理的专题,主要聚焦于使用DOM4J库对XML文档进行格式化的技术。DOM4J是一个非常流行的Java XML API,它提供了丰富的功能,包括读取、写入、修改以及操作XML文档。在XML处理中...

    dom4J解析XML 和jar包

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高性能的API,使得开发者可以方便地读取、写入、修改以及操作XML数据。DOM4J相较于标准的DOM API,更易于使用,且内存占用更低,是Java开发中的首选...

    dom4j解析xml字符串

    // SAXReader就是一个管道,用一个流的方式,把xml文件读出来 // // SAXReader reader = new SAXReader(); //User.hbm.xml表示你要解析的xml文档 // Document document = reader.read(new File("User.hbm.xml")...

    Dom4j_demo.rar_DEMO_dom4j de_dom4j demo_dom4j demo project_xml读

    标题"Dom4j_demo.rar_DEMO_dom4j de_dom4j demo_dom4j demo project_xml读"中包含了几个关键信息点:`Dom4j`、`demo`以及`xml读`。这表明这是一个关于使用Dom4j库进行XML读取操作的示例项目。`Dom4j`是Java中一个...

    dom4j解析XML

    DOM4J提供了`Format`类用于格式化XML输出,使其更易读。创建一个`Format`对象并使用`outputString()`方法: ```java Format prettyFormat = Format.getPrettyFormat(); String formattedXML = doc.asXML...

    java 操作xml 源码(包括dom dom4j 读写XML)

    java操作xml源码 操作方式包括:dom和dom4j dom是W3C规范,比较典型的JAVA操作XML方式,适用于小型文件。 dom4j是开源的性能以及效率最好的,也是一个典型例子。...采用dom4j写xml 以及dom4j方式读XML

    dom4j.jar,java xml

    DOM4J是一个强大的Java库,专门用于处理XML文档。它是一个灵活且高性能的XML解析器,同时提供了丰富的API,使得在Java应用程序中读取、写入、修改和操作XML文件变得简单。DOM4J这个名字来源于Document Object Model ...

    XML DOM4J学习笔记

    DOM4J是Java中一个流行的XML处理库,它提供了灵活且功能强大的API来操作XML文档。本篇笔记将深入探讨XML DOM4J的学习要点。 一、XML基础知识 1. XML结构:XML文档由元素(Element)、属性(Attribute)、文本内容...

    dom4j解析struts.xml需要的包装类

    `dom4j`是一个强大的Java XML API,它提供了一种灵活的方式来读取、写入、修改以及操作XML文档。在解析`struts.xml`时,dom4j能帮助我们高效地遍历XML节点,获取或设置属性值,以及创建对象模型来表示配置文件的结构...

    JAVA 解析XML 的JAr包 DOM4j.Jar JDOM.jar

    DOM4j是一个灵活且功能强大的Java XML API,它提供了全面的XML处理解决方案,包括读取、写入、操作和转换XML文档。DOM4j的核心特性是基于DOM模型,但同时融入了SAX和DOM的优点,使其在处理大型XML文件时具有更好的...

    DOM4J的读,写,创建XML文件操作

    使用DOM4J进行的一系列对XML文件的操作,包括读写,创建,同时注释出相关的常用的解析器,Document创建器

    JAVA读XML:sax,dom,jdom,dom4j的比较以及选择.doc

    Java 读取XML文件时,有多种解析器可供选择,分别是SAX、DOM、JDOM和DOM4J。这些解析器各有优缺点,适用于不同的场景。 SAX(Simple API for XML)是一种基于事件驱动的解析器。它在解析XML文件时,会按顺序触发一...

    dom4j

    ### DOM4J:Java下的XML处理库 DOM4J(Document Object Model for Java)是一个用于处理XML的Java库,它提供了简单、强大的API来读取、写入和修改XML文档。DOM4J的设计目标是易于使用且高效。本文将根据提供的代码...

Global site tag (gtag.js) - Google Analytics