Java获取XML节点总结之读取XML文档节点的方法

dom4j是Java的XML API,用来读写XML文件的。目前有很多场景中使用dom4j来读写xml的。

要使用dom4j开发,需要下载导入dom4j相应的jar文件。

官网下载:http://www.dom4j.org/dom4j-1.6.1/

github下载:http://dom4j.github.io/

下载解压之后如图所示:

我们只需要把dom4j-1.6.1.jar文件构建到我们开发项目中就可以了。

下面就以Eclipse创建java项目的构建方法为例说明:

声明:本Java项目的开发环境JDK1.8,Eclipse版本 Neon.1 Release (4.6.1)

首先创建一个demo项目:

在demo项目中创建一个lib文件,把dom4j-1.6.1.jar文件拷贝到lib中,然后右键dom4j-1.6.1jar文件。如图所示:

点击Add to Bulid Path即可构建到项目中去了。
导入成功如图所示:

在项目开发的过程中可以参考docs文件夹的(帮助文档),找到index.html打开,点击Quick start可以通过帮助文档进行学习 dom4j进行xml的解析。
如图所示:

下面我将以详细例子去介绍Java操作xml文件,文件名为exmple.java。

package vastsum;

import java.io.File;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;

/**
 * 读取下xml文档,获得document对象。
 * 本文为xml连载第一篇,以下代码可以直接运行,结尾附上源码下载地址。
 */
class exmple {
  public static void main(String[] args) throws DocumentException
  {
    SAXReader reader = new SAXReader();
    Document document = reader.read(new File("./src/contact.xml"));

    /**
     * 节点对象的操作方法
     */

    //获取文档根节点
    Element root = document.getRootElement();
    //输出根标签的名字
    System.out.println(root.getName());

    //获取根节点下面的所有子节点(不包过子节点的子节点)
    List<Element> list = root.elements() ;
    //遍历List的方法
    for (Element e:list){
      System.out.println(e.getName());
    }

    //获得指定节点下面的子节点
    Element contactElem = root.element("contact");//首先要知道自己要操作的节点。
    List<Element> contactList = contactElem.elements();
    for (Element e:contactList){
      System.out.println(e.getName());
    }  

    //调用下面获取子节点的递归函数。
    getChildNodes(root);

    //获得当前标签下指定名称的第一个子标签
    Element conElem = root.element("contact");
    System.out.println(conElem.getName());

    //获得更深层次的标签(一层一层的获取)
    Element nameElem = root.element("contact").element("name");
    System.out.println(nameElem.getName());
  }

  //递归查询节点函数,输出节点名称
  private static void getChildNodes(Element elem){
    System.out.println(elem.getName());
    Iterator<Node> it=  elem.nodeIterator();
    while (it.hasNext()){
      Node node = it.next();
      if (node instanceof Element){
        Element e1 = (Element)node;
        getChildNodes(e1);
        }

      }
    }

}

下面是对应的xml文件,文件名为contact.xml:

<?xml version="1.0" encoding="utf-8"?>
<contactList>
  <contact id="001" class="style">
    <name>张三</name>
    <age>20</age>
    <phone>134222223333</phone>
    <email>zhangsan@qq.com</email>
    <qq>432221111</qq>
  </contact>
  <contact id="002">
    <name>李四</name>
    <age>20</age>
    <phone>134222225555</phone>
    <email>lisi@qq.com</email>
    <qq>432222222</qq>
  </contact>
  <contactTwo>
    <name>王五</name>
    <age>32</age>
    <phone>465431341</phone>
    <emali>af@qq.com</emali>
    <qq>46164694</qq>
  </contactTwo>
  <test>测试</test>
  <test>其他用途</test>
</contactList>

两个文件的目录如题所示:

以上就是小编为大家带来的Java获取XML节点总结之读取XML文档节点的方法全部内容了,希望大家多多支持我们~

(0)

相关推荐

  • java对xml节点属性的增删改查实现方法

    学习本文之前请先看我的另一篇文章JAVA对XML节点的操作可以对XML操作有更好的了解. package vastsum; import java.io.File; import java.io.FileWriter; import java.util.Iterator; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; i

  • java实现Spring在XML配置java类的方法

    1. 创建自己的bean文件:beans.xml <?xml version="1.0" encoding="UTF-8"?> <busi-beans> <beans> <bean id="SysHelloImpl" type="com.cxm.test.SysHello"> <desc>test</desc> <impl-class>com.

  • java 与testng利用XML做数据源的数据驱动示例详解

    java 与testng利用XML做数据源的数据驱动示例详解 testng的功能很强大,利用@DataProvider可以做数据驱动,数据源文件可以是EXCEL,XML,YAML,甚至可以是TXT文本.在这以XML为例: 备注:@DataProvider的返回值类型只能是Object[][]与Iterator<Object>[] TestData.xml: <?xml version="1.0" encoding="UTF-8"?> <

  • xml与Java对象的转换详解

    xml与Java对象的转换详解 1.xstream解析报文 XStreamComponent x = XStreamComponent.newInstance(); x.processAnnotations(new Class[]{EquityExchangeDetail.class,PearTicketCustomerDTO.class,Date.class,Integer.class}); EquityExchangeDetail ptd = (EquityExchangeDetail) x

  • java实现的xml格式化实现代码

    核心代码: package com.ddatsh; import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; import java.io.UnsupportedEncodingException; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.OutputForm

  • java实现XML增加元素操作简单示例

    本文实例讲述了java实现XML增加元素操作.分享给大家供大家参考,具体如下: package Day01; import java.io.*; import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.*; public

  • 详解Java解析XML的四种方法

    XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便.对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM(Document Object Model),DTD(Document Type Definition),SAX(Simple API for XML),XSD(Xml Schema Definition),XSLT(Extensible Stylesheet Language Transform

  • Java开发中读取XML与properties配置文件的方法

    相关阅读: 使用Ajax进行文件与其他参数的上传功能(java开发) 1. XML文件: 什么是XML?XML一般是指可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言. 2.XML文件的优点: 1)XML文档内容和结构完全分离. 2)互操作性强. 3)规范统一. 4)支持多种编码. 5)可扩展性强. 3.如何解析XML文档: XML在不同的语言中解析XML文档都是一样的,只不过实现的语法不一样,基本的解析方式有两种,一种是SAX方式,是按照XML文件的顺序一

  • php删除txt文件指定行及按行读取txt文档数据的方法

    本文实例讲述了php删除txt文件指定行及按行读取txt文档数据的方法.分享给大家供大家参考,具体如下: 向txt文件循环写入值: $keys = range(1,999); $file = fopen('key_11010000.txt',"w"); foreach($keys as $key){ fwrite($file,"$key\r\n"); } fclose($file); $f1 = fopen('key_11010000.txt','r'); whil

  • JS获取IE版本号与HTML设置IE文档模式的方法

    JavaScript获取IE版本代码: var gIE = getIE(); alert(gIE.version) function getIE() { var rmsie = /(msie) ([\w.]+)/; var ua = navigator.userAgent.toLowerCase(); var match = rmsie.exec(ua) var result = {}; if (match && match.length > 0) { result = { brow

  • VB.net读取Word文档属性的方法

    复制代码 代码如下: '对自定义属性进行读取         Dim Properties = SourceDoc.CustomDocumentProperties            Dim PropertyType As Type = Properties.GetType Try            Dim Authorprop = PropertyType.InvokeMember("Item", Reflection.BindingFlags.Default Or Refl

  • Java获取XML节点总结之读取XML文档节点的方法

    dom4j是Java的XML API,用来读写XML文件的.目前有很多场景中使用dom4j来读写xml的. 要使用dom4j开发,需要下载导入dom4j相应的jar文件. 官网下载:http://www.dom4j.org/dom4j-1.6.1/ github下载:http://dom4j.github.io/ 下载解压之后如图所示: 我们只需要把dom4j-1.6.1.jar文件构建到我们开发项目中就可以了. 下面就以Eclipse创建java项目的构建方法为例说明: 声明:本Java项目的

  • C#操作读取、写入XML文档的实用方法

    本文给大家分享一下C#操作(读取.写入)XML文档的实用方法,这种方法主要是对比较规范的XML文档进行操作,因为它(XML文档)和类对象是严格对应的,否则在反序列或序列化的时候会出现错误.其他的不用多说,直接看示例代码吧: using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using

  • dom4j创建和解析xml文档的实现方法

    DOM4J解析 特征: 1.JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能. 2.它使用接口和抽象基本类方法. 3.具有性能优异.灵活性好.功能强大和极端易用的特点. 4.是一个开放源码的文件 jar包:dom4j-1.6.1.jar 创建 book.xml: package com.example.xml.dom4j; import java.io.FileWriter; import org.dom4j.Document; import org.dom4j.Document

  • C#对XmlHelper帮助类操作Xml文档的通用方法汇总

    前言 该篇文章主要总结的是自己平时工作中使用频率比较高的Xml文档操作的一些常用方法和收集网上写的比较好的一些通用Xml文档操作的方法(主要包括Xml序列化和反序列化,Xml文件读取,Xml文档节点内容增删改的一些通过方法).当然可能还有很多方法会漏了,假如各位同学好的方法可以在文末留言,我会统一收集起来. C#XML基础入门 https://www.jb51.net/article/104113.htm Xml反序列化为对象 #region Xml反序列化为对象 /// <summary>

  • 通过php添加xml文档内容的方法

    本文实例讲述了通过php添加xml文档内容的方法.分享给大家供大家参考.具体分析如下: 这里讲述的添加xml文档内容,从上一篇<DOM基础及php读取xml内容操作的方法>继续,代码如下: 复制代码 代码如下: <?php //1.创建一个DOMDocument对象.该对象就表示 xml文件 $xmldoc = new DOMDocument(); //2.加载xml文件(指定要解析哪个xml文件,此时dom树节点就会加载到内存中) $xmldoc->load("clas

  • 通过php删除xml文档内容的方法

    本文实例讲述了通过php删除xml文档内容的方法.分享给大家供大家参考.具体实现方法如下: 第一种情况:删除一个student节点 复制代码 代码如下: <?php //1.创建一个DOMDocument对象.该对象就表示 xml文件 $xmldoc = new DOMDocument(); //2.加载xml文件(指定要解析哪个xml文件,此时dom树节点就会加载到内存中) $xmldoc->load("class.xml"); //3.删除一条学生student信息记录

  • 通过php修改xml文档内容的方法

    本文实例讲述了通过php修改xml文档内容的方法,分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <?php //1.创建一个DOMDocument对象.该对象就表示 xml文件 $xmldoc = new DOMDocument(); //2.加载xml文件(指定要解析哪个xml文件,此时dom树节点就会加载到内存中) $xmldoc->load("class.xml"); //3.更新一条学生student信息记录,更新她的年龄 //(1)找到该学生 $

随机推荐