java中使用dom解析xml文件的实现代码

 代码如下 复制代码
import java.io.File;
 
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
 
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
 
 
public class Demo {
 
    public static void main(String[] args) throws Exception {
        //创建解析器工厂实例,并生成解析器
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        //创建需要解析的文档对象
        File f = new File("books.xml");
        //解析文档,并返回一个Document对象,此时xml文档已加载到内存中
        //好吧,让解析来得更猛烈些吧,其余的事就是获取数据了
        Document doc = builder.parse(f);
         
        //获取文档根元素
        //你问我为什么这么做?因为文档对象本身就是树形结构,这里就是树根
        //当然,你也可以直接找到元素集合,省略此步骤
        Element root = doc.getDocumentElement();
         
        //上面找到了根节点,这里开始获取根节点下的元素集合
        NodeList list = root.getElementsByTagName("book");
         
        for (int i = 0; i < list.getLength(); i++) {
            //通过item()方法找到集合中的节点,并向下转型为Element对象
            Element n = (Element) list.item(i);
            //获取对象中的属性map,用for循环提取并打印
            NamedNodeMap node = n.getAttributes();
            for (int x = 0; x < node.getLength(); x++) {
                Node nn = node.item(x);
                System.out.println(nn.getNodeName() + ": " + nn.getNodeValue());
            }
            //打印元素内容,代码很纠结,差不多是个固定格式
            System.out.println("title: " +n.getElementsByTagName("title").item(0).getFirstChild().getNodeValue());
            System.out.println("author: " + n.getElementsByTagName("author").item(0).getFirstChild().getNodeValue());
            System.out.println();
        }
    }
 
}
时间: 2024-09-20 08:57:45

java中使用dom解析xml文件的实现代码的相关文章

在java中使用dom解析xml的示例分析_java

dom是个功能强大的解析工具,适用于小文档 为什么这么说呢?因为它会把整篇xml文档装载进内存中,形成一颗文档对象树 总之听起来怪吓人的,不过使用它来读取点小东西相对Sax而言还是挺方便的 至于它的增删操作等,我是不打算写了,在我看教程的时候我就差点被那代码给丑到吐了 也正因为如此,才有后来那些jdom和dom4j等工具的存在-- 不多说,直接上代码 Dom解析示例 复制代码 代码如下: import java.io.File; import javax.xml.parsers.Document

Android开发之DOM解析xml文件的方法_Android

本文实例讲述了Android中DOM解析xml文件的方法.分享给大家供大家参考,具体如下: 一.在assets文件中写xml文件 <?xml version="1.0" encoding="UTF-8"?> <persons> <person id="23"> <name>李明</name> <age>30</age> </person> <pe

Android开发之DOM解析xml文件的方法

本文实例讲述了Android中DOM解析xml文件的方法.分享给大家供大家参考,具体如下: 一.在assets文件中写xml文件 <?xml version="1.0" encoding="UTF-8"?> <persons> <person id="23"> <name>李明</name> <age>30</age> </person> <pe

java中使用sax解析xml的解决方法_java

在java中,原生解析xml文档的方式有两种,分别是:Dom解析和Sax解析 Dom解析功能强大,可增删改查,操作时会将xml文档以文档对象的方式读取到内存中,因此适用于小文档 Sax解析是从头到尾逐行逐个元素读取内容,修改较为不便,但适用于只读的大文档 本文主要讲解Sax解析,其余放在后面 Sax采用事件驱动的方式解析文档.简单点说,如同在电影院看电影一样,从头到尾看一遍就完了,不能回退(Dom可来来回回读取) 在看电影的过程中,每遇到一个情节,一段泪水,一次擦肩,你都会调动大脑和神经去接收或

急急!为什么Applet中运用JDOM解析XML文件时,构造文档时失败啊

问题描述 为什么Applet中运用JDOM解析XML文件时,构造文档时失败啊SAXBuildersb=newSAXBuilder();Documentdoc=sb.build("E:/sample.xml");在main()程序中就不会有这样的问题,是不是安全问题请各路大侠帮忙了,谢啦!!!

Android使用Dom解析xml文件并进行展示

本程序实现了使用Dom方法从网络端解析xml文件,展示在列表,并实现点击进入相关页面. 首先我们创建一个类,用来实现http请求和xml文件节点的获取,这里的http请求很简单,就传递一 个url,在代码中通过这样的一个方法实现 public String getXmlFromUrl(String url) { String xml = null; try { // defaultHttpClient DefaultHttpClient httpClient = new DefaultHttpC

Android中使用sax解析xml文件的方法_Android

SAX是一个解析速度快并且占用内存少的xml解析器,非常适合用于Android等移动设备. SAX解析XML文件采用的是事件驱动,也就是说,它并不需要解析完整个文档,在按内容顺序解析文档的过程中,SAX会判断当前读到的字符是否合法XML 语法中的某部分,如果符合就会触发事件.所谓事件,其实就是一些回调(callback)方法,这些方法(事件)定义在ContentHandler接口.下面是一些ContentHandler接口常用的方法: startDocument():当遇到文档的开头的时候,调用

用DOM解析XMl文件生成SVG

问题描述 我们老板让我们用DOM解析XMl转化成SVG文件,求指教!!! 解决方案 解决方案二:svg本来就是基于XML的.所以你只要知道怎么使用DOM就差不多了.你想知道点什么?解决方案三:就是了解结构,解析!

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

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