`

dom4j(1)

阅读更多
package com.meizu58.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.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public class DOM4JTest {


public static void main(String[] args) throws Exception {
//读取xml ,解析xml。
readDocument();
//创建xml

// createDocument();
}



public static void readDocument() throws Exception{
SAXReader reader = new SAXReader();
      Document document = reader.read(new File("Student.hbm.xml"));
      Element rootElement = document.getRootElement();
//打印根节点
      p("rootElement.getName() = "+rootElement.getName());
     
      //准备打印子节点和子节点的属性
      for(Iterator i = rootElement.elementIterator();i.hasNext();){
     
      Element element = (Element)i.next();
      //打印根节点
      p("element.getName() = "+element.getName());
     
        //1  打印子节点的所有属性name和value
      for(Iterator j = element.attributeIterator();j.hasNext();){
    Attribute attribute = (Attribute)j.next();
    p(attribute.getName()+" = "+attribute.getValue());
      }
      }
      p("2xpath-----------------------------------------------------------");
      //2  xpath (为了方便记忆可以理解为类似sql的按条件查询)
      List<Node> list = document.selectNodes("//hibernate-mapping/class/property");
    
      for(Node n:list){
      p(n.getName());
      p("n.valueOf() = "+n.valueOf("@name"));
      //得到xml里文本值 getText()
      p("n.getText() = "+n.getText());
   
      }
     
      //读取指定到属性的元素
      String a = document.selectSingleNode("//hibernate-mapping/class/property[@type='name2']").getText();
          p("a = "+a);
}

public static Document createDocument() throws Exception{
Document document = DocumentHelper.createDocument();
Element root = document.addElement("hibernamet-mapping");
Element classElement = root.addElement("class").addAttribute("class", "com.meizu58.Student").addAttribute("table", "t_student");
classElement.addElement("property").addAttribute("name", "username");
//设置xml里的文本值setText
classElement.addElement("property").addAttribute("name", "password").setText("123456789");
OutputFormat format = OutputFormat.createPrettyPrint();
//XMLWriter writer = new XMLWriter(new FileWriter("Student2.hbm.xml"),format);
//解决了由于编码(上面的为GBK,tld头文件确是Utf-8)不能解析的问题,现在统一为utf-8
XMLWriter writer = new XMLWriter(new FileOutputStream("Student2.hbm.xml"), format); writer.write(document);
writer.close();
return document;
}


//公共调用的输出方法
public static void p(Object o){
System.out.println(o);
}

}

student.hbm.xml




<hibernate-mapping>
<class name="com.meizu58.Student" table="t_student">
<property name="username" type="name1">name1的value</property>
<property name="username" type="name2">name2的value</property>
<property name="password"></property>
<property name="赵四name">赵四value</property>
</class>
</hibernate-mapping>

0
0
分享到:
评论

相关推荐

    DOM4J jar包 xml解析 所有的dom4j-1.6.1 dom4j-2.0.2 dom4j-2.1.1包 导入直接使用

    1. **解析XML**:DOM4J可以读取XML文件,将其转换为一个树形结构,即Document对象。解析器有SAX和DOM两种模式,SAX是事件驱动的,适用于大文件,而DOM则将整个文档加载到内存中,适合小文件。 2. **创建XML**:DOM4...

    dom4j-1.6.1.jar及其2.0.2、2.1.1三个版本的jar包

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的解析、创建、修改和查询变得简单。DOM4J的名字来源于Document Object Model(DOM)和Java的组合,但它并不完全遵循W3C的DOM规范...

    dom4j 1 6 1 jar 包括了他的支持jar包 rar

    1. **XML解析**:DOM4J提供了多种方式来解析XML文档,包括SAX和DOM解析器。它也支持StAX和JDOM,提供了一种统一的API来处理不同解析模型。 2. **XPath支持**:DOM4J通过集成`jaxen`,可以方便地执行XPath查询,从而...

    dom4j_dom4j1.6.1安装包_

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高效的API,使得XML的解析、创建、查询和修改变得更为简单。在本文中,我们将深入探讨DOM4J 1.6.1版本的安装及其在Maven项目中的应用。 首先,DOM4J...

    dom4j dom4j dom4j dom4j

    1. **丰富的API**:DOM4J提供了大量的接口和类,涵盖了XML处理的各个方面,如解析、创建、遍历、修改和查询XML文档。这些API设计简洁,易于理解和使用。 2. **XPath支持**:DOM4J支持XPath表达式,使得开发者可以...

    dom4j-1.6.1 与 dom4j-2.0.0-ALPHA

    1. 支持XPath:DOM4J提供了一种强大的方式来查询XML文档,通过XPath表达式可以轻松地找到需要的数据。 2. 文档对象模型:它允许开发者以面向对象的方式处理XML文档,包括元素、属性、文本节点等。 3. 轻量级:DOM4J...

    dom4j_1.6.1.jar dom4j_2.1.0.jar

    1. **DOM4J概述**:DOM4J是一个开源项目,它提供了全面的XML处理功能,包括解析、生成、修改和查询XML文档。它不仅支持W3C的DOM API,还提供了基于事件的SAX和直接的DOM接口。 2. **核心概念**:主要包括Document...

    dom4j dom4j1.6 dom4j最新版

    1. **XML解析**:DOM4J可以快速地将XML文档解析成Document对象,通过XPath表达式进行查询。它支持SAX和DOM两种解析方式,SAX适合处理大型XML文件,而DOM适合小型文件,因为它将整个文档加载到内存中。 2. **文档操作...

    dom4j-2.1.3.zip

    1. **灵活的文档构建**:DOM4J提供了多种方式来创建和修改XML文档,如通过元素、属性、文本节点等对象直接操作,或者使用XPath表达式定位。 2. **强大的查询能力**:DOM4J支持XPath,可以方便地通过路径表达式查找...

    dom4j-2.0.3.zip

    1. **Element**: DOM4J中的Element类代表XML文档中的元素节点,它是DOM4J中最重要的类。通过Element,我们可以获取或设置元素的属性,添加子元素,以及遍历元素的子节点。 2. **Attribute**: 属性是元素的一部分,...

    所有版本的dom4j工具包

    1. **XML解析与构建**:DOM4J支持SAX和DOM解析器,可以将XML文档解析为树形结构。同时,它也提供了构建XML文档的方法,允许开发者动态创建XML内容。 2. **XPath支持**:DOM4J实现了XPath,这是一种强大的查询XML...

    dom4j需要的包

    1. **解析XML**:DOM4J提供了两种主要的解析方式,SAX(Simple API for XML)和DOM。SAX解析器是基于事件的,适用于大型XML文件,因为它只需要较少的内存。DOM解析器则会将整个XML文档加载到内存中,适合小到中等...

    dom4j所依赖的所有jar包

    1. **XML解析**:DOM4J支持多种解析方式,包括SAX解析、DOM解析和DOM4J自己的解析器。SAX解析适用于大文件,因为它按需读取,节省内存;DOM解析则将整个XML文档加载到内存,适合小文件;DOM4J解析器则提供了更灵活的...

    dom4j-2.1.1-API文档-中文版.zip

    赠送jar包:dom4j-2.1.1.jar; 赠送原API文档:dom4j-2.1.1-javadoc.jar; 赠送源代码:dom4j-2.1.1-sources.jar; 赠送Maven依赖信息文件:dom4j-2.1.1.pom; 包含翻译后的API文档:dom4j-2.1.1-javadoc-API文档-...

    dom4j 2.1.1

    1. 易于使用:DOM4J的API设计直观,使得开发者可以快速上手,减少学习成本。它提供了丰富的接口和类,能够以面向对象的方式处理XML文档。 2. 性能优异:相比其他XML解析库,DOM4J在处理大规模XML文档时表现出更好的...

    dom4j.jar 下载

    1. **下载**:首先,你需要从官方网站或者其他可信的源下载最新版本的dom4j.jar。 2. **解压**:如果下载的是包含多个文件的压缩包,你需要解压后找到dom4j.jar。 3. **引入工程**:将dom4j.jar文件放入你的Java项目...

    org.dom4j.jar

    1. **文档模型**:DOM4J提供了一种面向对象的XML文档模型,允许开发者以树形结构来操作XML文档。例如,可以创建、修改、删除XML元素、属性等。 2. **XPath支持**:DOM4J支持XPath表达式,这是对XML文档进行查询的...

    dom4j-2.1.1-API文档-中英对照版.zip

    赠送jar包:dom4j-2.1.1.jar; 赠送原API文档:dom4j-2.1.1-javadoc.jar; 赠送源代码:dom4j-2.1.1-sources.jar; 赠送Maven依赖信息文件:dom4j-2.1.1.pom; 包含翻译后的API文档:dom4j-2.1.1-javadoc-API文档-...

    DOM4J帮助文档及使用教程

    1. **介绍**:解释DOM4J的基本概念和设计目标,以及如何在项目中引入DOM4J库。 2. **安装与配置**:指导用户如何将DOM4J添加到Java项目中,包括Maven依赖、Gradle构建脚本或者直接添加JAR文件。 3. **基本概念**:...

    JavaEE源代码 dom4j-1.6.1

    JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1...dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1

Global site tag (gtag.js) - Google Analytics