TestDomForJava.java

package com.sxt.dom4j;
import java.io.File;
import java.util.Iterator;
import java.util.List; import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
/*
* Dom4j
* document object model for java
*
*/
import org.dom4j.io.SAXReader; public class TestDomForJava {
public static void main(String[] args) throws Exception{
//第一步:引入jar包
//新建folder:lib 将jar包拷贝进去 在jar包上右键 BuildPath:add to build path
//创建解析器
SAXReader reader = new SAXReader();
//获取dom树 .read()
Document document = reader.read(new File("product.xml"));
//获取根元素
Element rootElement = document.getRootElement();
System.out.println(rootElement.getName());
//获取所有子元素 迭代器 使用泛型 避免转型!
Iterator<Element> iterator = rootElement.elementIterator();
while(iterator.hasNext()){
Element element = iterator.next();
System.out.println(element.getName());
//获取某一个元素
Element element3 = element.element("price");
System.out.println("--------"+element3.getStringValue()); //获取属性 方法一
Attribute att = element.attribute("id");
System.out.println(att.getName()+"\t"+att.getValue());//att.getText()
//获取属性 方法二
List<Attribute> list = element.attributes();//使用泛型 避免强转
for(Attribute a : list){
System.out.println("-->"+a.getName()+"\t"+a.getValue());
}
//获取item的子元素 如name price等
Iterator<Element> iterator2 = element.elementIterator();//使用泛型 避免强转
while(iterator2.hasNext()){
Element element2 = iterator2.next();
System.out.println(element2.getName()+"\t"+element2.getStringValue());//getText()
}
System.out.println();
}
}
}

Dom4j(Dom for Java) Day24的更多相关文章

  1. myeclipse的web project中使用dom4j报错java.lang.ClassNotFoundException: org.dom4j.Document

    在学习微信公众平台开发的过程中,参考了微信公众平台java开发详解(工程代码+解析)中的xml解析方法,是使用dom4j来解析的. 对于java中解析xml的方法,又参考了java解析xml的几种方式 ...

  2. DOM综合案例、SAX解析、StAX解析、DOM4J解析

    今日大纲 1.DOM技术对xml的增删操作 2.使用DOM技术完成联系人管理 3.SAX和StAX解析 4.DOM4J解析 5.XPATH介绍 1.DOM的增删操作 1.1.DOM的增加操作 /* * ...

  3. 整理的一些java中常使用jar包以及说明

    slf4j:Simple Logging Facade for Java SLF4J,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于 ...

  4. dom4j和document

    DOM的优点和缺点: 优点:DOM操作思维清晰,简单 缺点:在操作大量数据的时候性能,不能保证 DOM(Document Object Model) // 表示出需要被操作的XML文件的路径,注意是文 ...

  5. IO流 总结二

    流只能操作数据. File 类 用来将文件或者文件夹封装成对象. 方便文件与文件夹进行操作 File对象可以作为参数传递给流的构造函数. 可以将已有的和已出现的文件或者文件夹封装成对象 File a ...

  6. java中四种操作(dom、sax、jdom、dom4j)xml方式详解与比较

    1)DOM(JAXP Crimson解析器)     DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特 ...

  7. java操作xml方式比较与详解(DOM、SAX、JDOM、DOM4J)

    java中四种操作(DOM.SAX.JDOM.DOM4J)xml方式的比较与详解     1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准. ...

  8. 转:在java中使用dom4j解析xml

    JAVA 使用Dom4j 解析XML Java DOM4J Parser - Parse XML Document Dom4j下载及使用Dom4j读写XML简介 在java中使用dom4j解析xml ...

  9. XML解析【介绍、DOM、SAX详细说明、jaxp、dom4j、XPATH】

    什么是XML解析 前面XML章节已经说了,XML被设计为"什么都不做",XML只用于组织.存储数据,除此之外的数据生成.读取.传送等等的操作都与XML本身无关! XML解析就是读取 ...

随机推荐

  1. 嘴巴题2 UVA10779 收集者的难题

    UVA10779 收集者的难题 题目: 有\(T(T\leq 20)\)组数据.\(Bob\)在与他的\(n−1(2\leq n\leq 10)个\)朋友交换糖纸,一共有\(m(5\leq m\leq ...

  2. 二进制日志过期时间设置expire_logs_days

    # expire_logs_days参数只支持整数,且范围是[0,99] show variables like 'expire_logs_days';set global expire_logs_d ...

  3. 数组的方法之(Array.prototype.forEach() 方法)

    forEach() 方法对数组的每个元素执行一次提供的函数. 注意: 没有返回一个新数组 并且 没有返回值! 应用场景:为一些相同的元素,绑定事件处理器! const arr = ['a', 'b', ...

  4. input输入框的input事件和change事件

    input输入框的onchange事件,要在 input 失去焦点的时候才会触发: 在输入框内容变化的时候不会触发change,当鼠标在其他地方点一下才会触发: onchange 事件也可用于单选框与 ...

  5. java项目小手册

    集合了一些常用的小片段 1. 字符串有整型的相互转换 Java代码 String a = String.valueOf(2); //integer to numeric string int i = ...

  6. iostat统计信息

    用途:报告中央处理器(CPU)统计信息和整个系统.适配器.tty 设备.磁盘和 CD-ROM 的输入/输出统计信息. 语法:iostat [ -c | -d ] [ -k ] [ -t | -m ] ...

  7. LINUX配置文件介绍

    每个 Linux 程序都是一个可执行文件,它含有操作码列表,CPU 将执行这些操作码来完成特定的操作.例如,ls 命令是由 /bin/ls 文件提供的,该文件含有机器指令的列表,在屏幕上显示当前目录中 ...

  8. Leetcode665.Non-decreasing Array非递减数组

    给定一个长度为 n 的整数数组,你的任务是判断在最多改变 1 个元素的情况下,该数组能否变成一个非递减数列. 我们是这样定义一个非递减数列的: 对于数组中所有的 i (1 <= i < n ...

  9. web前端学习(四)JavaScript学习笔记部分(5)-- 事件流详解

    1.JS事件详解-事件流 1.1.事件流 1.事件流: 描述的是在页面中接受事件的顺序 2.事件冒泡: 由最具体的元素接收,然后逐级上传播至最不具体的节点(文档) 3.事件捕获: 最不具体的节点先接收 ...

  10. web前端学习(二)html学习笔记部分(3)--range对象

    1.2.8  html5编辑api之range对象(一) 1.2.8.1  Range 对象基本概念 Range 对象的基本概念,通过使用 Range 对象所提供的方法实现一个鼠标选取内容,通过点击按 ...