XML--Java中的四种常见解析方式--dom

Java中常用的解析方式主要有四种:

Java 自带:Dom、Sax。

外加包:Jdom、Dom4j。

1.Dom

主要的构建方式

DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();

DocumentBuilder db=dbf.newDocumentBuilder();

Document dm=db.parse("rec\\books.xml");

其中节点类为Node  节点集合类为NodeList

attr属性集合用NamedNodeMap 通过getAttributes()实现。

NodeList booklist=dm.getElementsByTagName("book");

NodeList childnodes = book.getChildNodes();

字节点childnodes集合用getChildNodes()实现

字节点第i个通过childnodes.item(i)获得

“集合”长度用get.length()实现

节点类型有多种 通过Node.ELEMENT_NODE可以获得该节点的类型

如上图如要获得<name>数据结构</name>中的文本

则需要通过childnodes.item(k).getTextContent()直接获得文本

或者通过childnodes.item(k).getFirstchild().getNodeName。(文本被视为name标签的Text类型子节点)

PS:xml空格会被视为一个text类型的节点。

例子:

public class Xmltest {
    public List<book> books;
    public Xmltest(){
        this.books=new ArrayList();
    }
    public static void main(String[] args) throws Exception {
        Xmltest test=new Xmltest();
        int i=2005;
        int j=i>>2;
        System.out.println(j);
        test.Jiexi();
        test.foreprint();
}
    public void Jiexi() throws Exception{
        DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
        DocumentBuilder db=dbf.newDocumentBuilder();
        Document dm=db.parse("E:\\books.xml");// TODO Auto-generated method stub
        NodeList booklist=dm.getElementsByTagName("book");
        for (int i = 0; i < booklist.getLength(); i++) {
            book temp=new book();
            Node book = booklist.item(i);
            NamedNodeMap attrs = book.getAttributes();
            NodeList childnodes = book.getChildNodes();
            for (int k = 0; k < childnodes.getLength(); k++) {
                if (childnodes.item(k).getNodeType() == Node.ELEMENT_NODE) {
                    if (childnodes.item(k).getNodeName() == "name")
                        temp.name = childnodes.item(k).getn;
                    if (childnodes.item(k).getNodeName() == "years")
                        temp.years = childnodes.item(k).getTextContent();
                    if (childnodes.item(k).getNodeName() == "price")
                        temp.price = childnodes.item(k).getTextContent();
                }
            }
            books.add(temp);
        }

    }
    public void foreprint(){
        for(book temp:books){
            System.out.println("------------");
            System.out.println("书名为:"+temp.name);
            System.out.println("出版年份:"+temp.years);
            System.out.println("价格为:"+temp.price+"元");

        }
    }
    }

时间: 2024-12-28 02:18:56

XML--Java中的四种常见解析方式--dom的相关文章

XML--Java中的四种常见解析方式--jdom与dom4j

jdom与dom4j作为特地为java的实现,比较灵活适合熟悉Java的人 jdom主要构建方法 SAXBuilder sax=new SAXBuilder(); 方法一:  InputStream in=new FileInputStream("rec\\books.xml");             Document document=sax.build(in);方法二:  Document document=sax.build("rec\\books.xml"

JAVA中十四种常见开发工具及其特点

1.JDK (Java Development Kit)Java开发工具集 SUN的Java不仅提了一个丰富的语言和运行环境,而且还提了一个免费的Java开发工具集(JDK).开发人员和最终用户可以利用这个工具来开发java程序. JDK简单易学,可以通过任何文本编辑器(如:Windows 记事本.UltrEdit.Editplus.FrontPage以及dreamweaver等)编写Java源文件,然后在DOS状况下利通过javac命令将Java源程序编译成字节码,通过Java命令来执行编译后

java中的四种单例实现方式

在java中,单例设计模式是非常常见的设计模式,对单例设计模式的概念,不做过多的介绍,下面将逐一介绍四种单例设计模式: 1.第一种单例设计模式 1.1 代码实现 package com.singleton.one; /**  * 第一种单例设计模式  * @author Administrator  *  */ public class SingleTonOne { // 实例化 private static SingleTonOne instance = new SingleTonOne();

JAVA中的四种引用以及ReferenceQueue和WeakHashMap的使用示例

简介: 本文主要介绍JAVA中的四种引用: StrongReference(强引用).SoftReferenc(软引用).WeakReferenc(弱引用).PhantomReference(虚引用)的作用.同时我们还将介绍ReferenceQueue和WeakHashMap的功能和使用示例. 欢迎探讨,如有错误敬请指正 如需转载,请注明出处 http://www.cnblogs.com/nullzx/ 1. JAVA中的四种引用 四种引用中,软引用.若引用.虚引用都需要相关类来创建.创建的时候

Java中的四种引用类型比较

1.引用的概念 引用这个概念是与JAVA虚拟机的垃圾回收有关的,不同的引用类型对应不同的垃圾回收策略或时机. 垃圾收集可能是大家感到难于理解的较难的概念之一,因为它并不能总是毫无遗漏地解决Java运行时环境中堆管理的问题. 垃圾回收的大致思路是:当Java虚拟机觉得内存不够用的时候,会触发垃圾回收操作(GC),清除无用的对象,释放内存.可是如何判断一个对象是否是垃圾呢?其中的一个方法是计算指向该对象的引用数量,如果引用数量为0,那么该对象就为垃圾(Thread对象是例外),否则还有用处,不能被回

Java 中的四种引用

1.强引用(Strong Reference)在 Java 中四种引用中是"最强"的,我们平时通过 new 关键字创建的对象都属于强引用,如下面的代码: Person person = new Person();其中的 person 就是一个强引用,只有当它不再被使用后才会被垃圾回收器回收掉.当内存不足时,但是其依然在被使用中,那么垃圾回收器也不会回收其引用的对象:JVM 宁愿报"内存泄漏错误 (OutofMemoryError)",终止程序也不会回收此引用所关联的

Java中的四种引用类型,强引用,软引用,弱引用,虚引用

对于Java中的垃圾回收机制来说,对象是否被回收的标准在于该对象是否被引用.因此,引用也是JVM进行内存管理的一个重要概念. Java中对象的引用一般有以下4种类型: 1强引用  2软引用  3弱引用  4虚引用 以下一一介绍其用法和区别 1强引用:在Java中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用.当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到JVM也不会回收.因此强引用是造成Java内存泄漏的主

Java 中的四种引用及垃圾回收策略

Java 中有四种引用:强引用.软引用.弱引用.虚引用: 其主要区别在于垃圾回收时是否进行回收: 1.强引用 使用最普遍的引用.如果一个对象具有强引用,那就 类似于必不可少的生活用品,垃圾回收器绝不会回收它.当内存空 间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题. 2.软引用(SoftReference) 如果一个对象只具有软引用,那就类似于可有可物的生活用品.如果内存空间足够,垃圾回收器就不会回收它,如果

java中的四种引用

Java 中有四种引用:强引用.软引用.弱引用.虚引用: 其主要区别在于垃圾回收时是否进行回收: 1.强引用 使用最普遍的引用.如果一个对象具有强引用,那就 类似于必不可少的生活用品,垃圾回收器绝不会回收它.当内存空 间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题. 2.软引用(SoftReference) 如果一个对象只具有软引用,那就类似于可有可物的生活用品.如果内存空间足够,垃圾回收器就不会回收它,如果