Java使用DOM4j实现读写XML文件的属性和元素

DOM4可以读取和添加XML文件的属性或者元素

读取属性:

public static void ReadAttributes() throws DocumentException {
  File file = new File("D:\\cmz\\java\\XMLTest\\Customertest.xml");
  SAXReader reader = new SAXReader();
  Document doc = reader.read(file);
  Element root = doc.getRootElement();
  try {

   for (Iterator iterator = root.elementIterator(); iterator.hasNext();) {
    Element element = (Element) iterator.next();
    String CustomerID = element.attributeValue("CustomerID");
    System.out.println("CustomerID = " + CustomerID);
    String CompanyName = element.attributeValue("CompanyName");
    System.out.println("CompanyName = " + CompanyName);
    System.out.println("ContactName = "
      + element.attributeValue("ContactName"));
    System.out.println("ContactTitle = "
      + element.attributeValue("ContactTitle"));
    System.out.println("Address = "
      + element.attributeValue("Address"));
    System.out.println("City = " + element.attributeValue("Cit阿y"));
    System.out.println("PostalCode = "
      + element.attributeValue("PostalCode"));
    System.out.println("Country = "
      + element.attributeValue("Country"));
    System.out
      .println("Phone = " + element.attributeValue("Phone"));
    System.out.println("Fax = " + element.attributeValue("Fax"));
    System.out
      .println("--------------------------------------------------------\t");

   }
  } catch (Exception e) {
   // TODO: handle exception
  }

 }

读取元素:

public static void ReadInnerTest() throws DocumentException {
  File file = new File("D:\\cmz\\java\\XMLTest\\Customer1.xml");
  SAXReader reader = new SAXReader();
  Document doc = reader.read(file);
  Element root = doc.getRootElement();

  try {
   for (Iterator iterator = root.elementIterator(); iterator.hasNext();) {
    Element type = (Element) iterator.next();

    System.out.println(type.elementText("CustomerID"));
    System.out.println(type.elementText("CompanyName"));
    System.out.println(type.elementText("ContactName"));
    System.out.println(type.elementText("ContactTitle"));
    System.out.println(type.elementText("Address"));
    System.out.println(type.elementText("City"));
    System.out.println(type.elementText("PostalCode"));
    System.out.println(type.elementText("Country"));
    System.out.println(type.elementText("Phone"));
    System.out.println(type.elementText("Fax"));
    System.out.println("---------------------------------\t");
   }

  } catch (Exception e) {
   // TODO: handle exception
  }
 }

写入属性:

public static void WriteAttributes() {
  Document doc = DocumentHelper.createDocument();
  Element ele = doc.addElement("table");
  for (int i = 1; i < 5; i++) {
   Element Customers = ele.addElement("Customers");

   Customers.addAttribute("CustomerID", "ALFKI" + i);
   Customers.addAttribute("CompanyName", "Alfreds Futterkiste" + i);
   Customers.addAttribute("ContactName", "Maria Anders" + i);
   Customers.addAttribute("ContactTitle", "Sales Representative" + i);
   Customers.addAttribute("Address", "Obere Str. 57");
   Customers.addAttribute("City", "beijin");
   Customers.addAttribute("PostalCode", "12209");
   Customers.addAttribute("Country", "Germany");
   Customers.addAttribute("Phone", "030-0074321");
   Customers.addAttribute("Fax", "030-0076545");
   try {
    XMLWriter writer = new XMLWriter(new FileWriter(new File(
      "Customertest.xml")));
    writer.write(doc);
    writer.close();
   } catch (Exception e) {
    // TODO: handle exception
   }
  }

 }

写出元素:

public static void writeInnerTest(){
  Document doc = DocumentHelper.createDocument();
  Element ele = doc.addElement("table");

  for (int i = 1; i < 5; i++) {
   Element Customers = ele.addElement("row");
   Element CustomerID = ele.addElement("CustomerID");
   CustomerID.setText("ALFKI" + i);
   Element CompanyName = ele.addElement("CompanyName");
   CompanyName.setText("Alfreds Futterkiste" + i);
   Element ContactName = ele.addElement("ContactName");
   ContactName.setText("Maria Anders" + i);
   Element ContactTitle = ele.addElement("ContactTitle");
   ContactTitle.setText("Sales Representative" + i);
   Element Address = ele.addElement("Address");
   Address.setText("Obere Str. 57");
   Element City = ele.addElement("City");
   City.setText("beijin");
   Element PostalCode = ele.addElement("PostalCode");
   PostalCode.setText("12209");
   Element Country = ele.addElement("Country");
   Country.setText("Germany");
   Element Phone = ele.addElement("Phone");
   Phone.setText("030-0074321");
   Element Fax = ele.addElement("Fax");
   Fax.setText("030-0076545");
  }
  try {
   XMLWriter writer = new XMLWriter(new FileWriter(new File(
     "Customertest2.xml")));
   writer.write(doc);
   writer.close();
  } catch (Exception e) {
   // TODO: handle exception
  }

 }

可以修改属性的文本内容:

public static void ReadUpdateattribute() throws DocumentException{
  File file = new File("D:\\cmz\\java\\XMLTest\\Customertest.xml");
  SAXReader reader = new SAXReader();
  Document doc = reader.read(file);
  Element root = doc.getRootElement();

  try {

   for (Iterator iterator = root.elementIterator("Customers"); iterator.hasNext();) {
    Element element = (Element) iterator.next();
    String name = "ALFKI1";
    if (name.equals(element.attributeValue("CustomerID")) ) {
     Attribute attr = element.attribute("CustomerID");
     attr.setValue("234");
     Element ContactName = element.addElement("23424");
     ContactName.setText("676767" );
    }

   }
   XMLWriter writer = new XMLWriter(new FileOutputStream(file));
   writer.write(doc);
   ReadAttributes();
  } catch (Exception e) {
   // TODO: handle exception
  }

 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java使用dom4j生成与解析xml文档的方法示例

    本文实例讲述了java使用dom4j生成与解析xml文档的方法.分享给大家供大家参考,具体如下: xml是一种新的数据格式,主要用于数据交换.我们所用的框架都有涉及到xml.因此解析或生成xml对程序员也是一个技术难点.这里就用dom4j来生成一个文档,需要注意的是每个xml文档只有一个根节点. package org.lxh; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutput

  • java dom4j解析xml用到的几个方法

    1. 读取并解析XML文档: 复制代码 代码如下: SAXReader reader = new SAXReader(); Document document = reader.read(new File(fileName)); reader的read方法是重载的,可以从InputStream, File, Url等多种不同的源来读取.得到的Document对象就带表了整个XML. 读取的字符编码是按照XML文件头定义的编码来转换.如果遇到乱码问题,注意要把各处的编码名称保持一致即可. 2. 取

  • java使用dom4j操作xml示例代码

    dom4j是一个非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源工具.可以在这个地址http://dom4j.sourceforge.net进行下载.这里我们使用到的dom4j是dom4j-1.6.1这个版本,我们只需要使用到如下两个jar包: 复制代码 代码如下: dom4j-1.6.1.jarcommons-io-2.4.jar 1.dom4j读取xml字符串 复制代码 代码如下: import org.dom4j.Document;imp

  • java使用xpath和dom4j解析xml

    1 XML文件解析的4种方法 通常解析XML文件有四种经典的方法.基本的解析方式有两种,一种叫SAX,另一种叫DOM.SAX是基于事件流的解析,DOM是基于XML文档树结构的解析.在此基础上,为了减少DOM.SAX的编码量,出现了JDOM,其优点是,20-80原则(帕累托法则),极大减少了代码量.通常情况下JDOM使用时满足要实现的功能简单,如解析.创建等要求.但在底层,JDOM还是使用SAX(最常用).DOM.Xanan文档.另外一种是DOM4J,是一个非常非常优秀的Java XML API,

  • Java DOM4J方式生成XML的方法

    使用DOM4J方式生成XML文件的步骤如下: 引入JAR包 通过DocumentHelper类的createDocument()创建Document对象 通过Document的addElement()方法创建节点 通过Element的addAttribute()方法为节点添加属性 通过Element的setText()方法为节点设置内容 通过OutputFormat的createPrettyPrint()方法创建OutputFormat对象(会自动缩进.换行) 创建XMLWriter对象,将目的

  • java dom4j解析xml文件代码实例分享

    解析xml文件有两种方式,一种是利用Dom去解析,这种方式写起代码比较麻烦,对于刚入手的程序员来说比较容易出问题:第二种就是使用Dom4j包去解析在要使用Dom4j包的时候,肯定要先引入包 复制代码 代码如下: import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.Writer;import java.util.Iterator; import org.dom4j.Docum

  • java解析xml之dom4j解析xml示例分享

    复制代码 代码如下: package com.test; import java.io.File;import java.util.ArrayList;import java.util.Iterator;import java.util.List; import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.io.SAXReader; public class Dom4jXML { public static void

  • java中使用dom4j解析XML文件的方法教程

    前言 dom4j是一个java的XML api,性能优异.功能强大.易于使用.以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4j解析xml的具体操作.下面话不多说了,来一起看看详细的介绍吧 官网下载Dom4j地址:https://dom4j.github.io/ 注意:使用Dom4j开发,需下载dom4j相应的jar文件 题目:后台利用dom4j解析student.xml文件,并返回List<Stude

  • Dom4j解析XML_动力节点Java学院整理

    dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它. 对主流的java XML API进行的性能.功能和易用性的评测,dom4j无论在那个方面都是非常出色的.如今你可以看到越来越多的Java软件都在使用dom4j来读写XML,例如hibernate,包括sun公司自己的JAXM也用了Dom4j. 使用

  • 在java中使用dom4j解析xml(示例代码)

    虽然Java中已经有了Dom和Sax这两种标准解析方式 但其操作起来并不轻松,对于我这么一个初学者来说,其中部分代码是活生生的恶心 为此,伟大的第三方开发组开发出了Jdom和Dom4j等工具 鉴于目前的趋势,我们这里来讲讲Dom4j的基本用法,不涉及递归等复杂操作 Dom4j的用法很多,官网上的示例有那么点儿晦涩,这里就不写了 首先我们需要出创建一个xml文档,然后才能对其解析 xml文档: 复制代码 代码如下: <?xml version="1.0" encoding=&quo

  • java操作(DOM、SAX、JDOM、DOM4J)xml方式的四种比较与详解

    1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特定信息.分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作.由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的.DOM以及广义的基于树的处理具有几个优点.首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改.它还可以在任何时候在树中上下导航,而不是像SAX那

  • java中利用Dom4j解析和生成XML文档

    一.前言 dom4j是一套非常优秀的Java开源api,主要用于读写xml文档,具有性能优异.功能强大.和非常方便使用的特点.   另外xml经常用于数据交换的载体,像调用webservice传递的参数,以及数据做同步操作等等,   所以使用dom4j解析xml是非常有必要的. 二.准备条件 dom4j.jar 下载地址:http://sourceforge.net/projects/dom4j/ 三.使用Dom4j实战 1.解析xml文档 实现思路: <1>根据读取的xml路径,传递给SAX

  • java基于dom4j包实现对XML解析的方法

    本文实例讲述了java基于dom4j包实现对XML解析的方法.分享给大家供大家参考,具体如下: 本例中的xml文件内容如下: <?xml version = "1.0" encoding="UTF-8"?> <!-- Copyright 难免有错 这是注释--> <自定义的> <!-- iloveyou --> <你喜欢的名字就好> <who a = "i"></who

  • java DOM4J 读取XML实例代码

    下面展示一篇我自己写的一个XML读取测试 复制代码 代码如下: import java.util.Iterator;import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStreamReader;import java.net.MalformedURLException;import org.dom4j.*;import org.dom4j.io.SAXRe

  • java使用dom4j解析xml配置文件实现抽象工厂反射示例

    逻辑描述: 现在我们想在B层和D层加上接口层,并使用工厂.而我们可以将创建B和创建D看作是两个系列,然后就可以使用抽象工厂进行创建了. 配置文件:beans-config.xml.service-class与dao-class分别对应两个系列的产品.子菜单中id对应接口的命名空间,class对应实现类的命名空间. 复制代码 代码如下: [html] view plaincopyprint? <?xml version="1.0" encoding="UTF-8"

随机推荐