Android创建与解析XML(二)——详解Dom方式

下面是具体的“Android创建与解析XML(二)——详解Dom方式”攻略。

1. 什么是Dom

Dom,全称为 Document Object Model,是一种基于树形结构的API,用于表示和操作xml文档。

2. Dom的使用

(1)导入相应的类库

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

(2)创建DocumentBuilderFactory对象和DocumentBuilder对象

try {
    DocumentBuilderFactory builderFactory = 
         DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = builderFactory.newDocumentBuilder();
} catch (Exception e) {
    e.printStackTrace();
}

(3)使用DocumentBuilder对象解析xml文档,返回Document对象

try {
    File file = new File("book.xml");
    Document document = builder.parse(file);
} catch (Exception e) {
    e.printStackTrace();
}

(4)获取xml文档中的Element

Element rootElement = document.getDocumentElement();

(5)获取xml文档中的NodeList

NodeList nodeList = rootElement.getElementsByTagName("book");

(6)遍历NodeList,获取每个Node,进行操作

for (int i = 0; i < nodeList.getLength(); i++) {
    Node node = nodeList.item(i);
    if (node.getNodeType() == Node.ELEMENT_NODE) {
        Element element = (Element) node;
        String id = element.getAttribute("id");
        String name = element.getElementsByTagName("name")
                             .item(0).getTextContent();
        String author = element.getElementsByTagName("author")
                               .item(0).getTextContent();
        String price = element.getElementsByTagName("price")
                              .item(0).getTextContent();
        System.out.println(id + "\t" + name + "\t" + author + "\t" + price);
    }
}

3. 示例说明

(1)创建xml文档

<?xml version="1.0" encoding="utf-8"?>
<books>
    <book id="001">
        <name>Java程序设计</name>
        <author>张三</author>
        <price>69.9</price>
    </book>
    <book id="002">
        <name>IOS开发入门</name>
        <author>李四</author>
        <price>89.5</price>
    </book>
</books>

(2)解析xml文档

try {
    DocumentBuilderFactory builderFactory = 
         DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = builderFactory.newDocumentBuilder();
    File file = new File("book.xml");
    Document document = builder.parse(file);
    Element rootElement = document.getDocumentElement();
    NodeList nodeList = rootElement.getElementsByTagName("book");
    for (int i = 0; i < nodeList.getLength(); i++) {
        Node node = nodeList.item(i);
        if (node.getNodeType() == Node.ELEMENT_NODE) {
            Element element = (Element) node;
            String id = element.getAttribute("id");
            String name = element.getElementsByTagName("name")
                                 .item(0).getTextContent();
            String author = element.getElementsByTagName("author")
                                   .item(0).getTextContent();
            String price = element.getElementsByTagName("price")
                                  .item(0).getTextContent();
            System.out.println(id + "\t" + name + "\t" + author + "\t" + price);
        }
    }
} catch (Exception e) {
    e.printStackTrace();
}

输出结果:

001 JAVA程序设计    张三  69.9
002 IOS开发入门 李四  89.5

以上就是“Android创建与解析XML(二)——详解Dom方式”的完整攻略,希望能对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android创建与解析XML(二)——详解Dom方式 - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • PHP 使用header函数设置HTTP头的示例解析 表头

    PHP 中通过 header() 函数可以设置 HTTP 头,包括设置响应头和请求头。使用 header() 函数可以实现网页的跳转、缓存控制、设置 Cookie 等操作。 下面来看一下怎样使用 header() 函数设置 HTTP 头: 设置响应头 设置响应头主要是用于修改服务器的响应信息,比如设置网页的编码格式、防止页面被嵌入框架等。 示例一 以下示例展…

    html 2023年5月30日
    00
  • SpringBoot整合WebSocket实现后端向前端发送消息的实例代码

    下面是“SpringBoot整合WebSocket实现后端向前端发送消息的实例代码”的完整攻略: 1. 引入相关依赖 首先,我们需要在SpringBoot的项目中引入以下依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId&g…

    html 2023年5月31日
    00
  • C#实现提高xml读写速度的方法

    C#实现提高xml读写速度的方法 概述 XML是一种非常常见的数据交换格式,但是默认情况下,C#读写XML文档的速度比较慢。本文将介绍如何使用C#提高读写XML文档的速度。 优化方法 1. 使用XmlReader和XmlWriter XmlReader和XmlWriter是.NET提供的两个用于处理XML文档的高性能API。使用这两个API可以有效地减少内存…

    html 2023年5月30日
    00
  • HTML5新增加的功能详解

    HTML5新增加的功能详解 HTML5是当前互联网最广泛使用的标记语言,它的新特性和功能也让网站制作更加灵活和高效。在这里,我们将对HTML5的新增加的功能进行详细的讲解。 语义化标签 HTML5新增加了许多语义化标签,使得编写网站代码更加简单、清晰。以下是其中几个常用的: header 定义文档或节的头部,通常包含介绍性或导航性的信息。 示例: <h…

    html 2023年5月30日
    00
  • C# XML中的转义字符操作

    下面是关于“C# XML中的转义字符操作”的攻略: 什么是C# XML中的转义字符? 在XML中,有一些字符是被保留的,不允许直接使用。如果想要在XML中使用这些保留字符,需要将其进行转义。例如,左尖括号“<”需要转义为“<”,右尖括号“>”需要转义为“>”。 C#中如何进行XML转义字符的操作? C#中提供了如下几个方法来进行XML…

    html 2023年5月30日
    00
  • mybatis where 标签使用

    下面我将详细讲解“Mybatis where标签使用”的完整攻略,以及附带两条示例说明。 1. where 标签介绍 where 标签是 Mybatis 中用于动态生成 WHERE 子句的标签。它的作用可以在 SQL 语句中加入 WHERE 子句,将这个子句和其他的条件组合在一起。 2. where 标签用法 where 标签通常和其他的标签一起使用,比如:…

    html 2023年5月30日
    00
  • c#操作xml文件示例

    下面是详细讲解“c#操作xml文件示例”的完整攻略: 1. 创建一个XML文件 要操作XML文件,首先需要创建一个XML文件。可以使用以下代码创建books.xml文件: using System.Xml; public void CreateXmlFile() { XmlDocument xmlDoc = new XmlDocument(); XmlEle…

    html 2023年5月30日
    00
  • Node.js服务器开启Gzip压缩教程

    当我们需要提高我们的网站的速度时,一种实用的方法是通过Gzip压缩,将我们的文件压缩到更小的尺寸并传输给用户。Node.js可以帮助我们轻松地为我们的服务器启用Gzip压缩,以下是详细的攻略。 确认Node.js版本 首先,我们需要确保我们的Node.js版本是8以上的版本。我们可以在命令行中输入以下命令来检查当前的Node.js版本: node -v 如果…

    html 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部