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日

相关文章

  • Android shape标签使用方法介绍

    下面我将为您详细讲解“Android shape标签使用方法介绍”的完整攻略。 一、什么是Android shape标签 Android shape标签是指一种用于定义形状的XML标签。我们可以通过在XML布局文件或绘制XML文件中添加shape标签来创建各种形状,比如矩形、椭圆等,并可以设置边框、填充颜色、圆角等。 二、shape标签的常用属性及用法示例 …

    html 2023年5月30日
    00
  • python写xml文件的操作实例

    以下是”Python写XML文件的操作实例”的攻略: 1. 导入XML模块 Python的xml模块是Python处理XML文件的标准库,使用前需要先import导入xml模块。 import xml.etree.ElementTree as ET 2. 生成XML文档 使用xml.etree.ElementTree.Element()方法生成根节点,并使用…

    html 2023年5月30日
    00
  • XML入门的常见问题(四)

    我会详细讲解“XML入门的常见问题(四)”的完整攻略。 标题 XML入门的常见问题(四) 问题描述 在使用XML时,有时候会遇到不同的编码方式,例如Unicode、UTF-8、GB2312等等。如何在处理XML文件时选择正确的编码方式呢?以下是一些常见的问题和解决方案。 解决方案 1. 如何确定XML文件的编码方式? 在XML文件中,可以通过添加XML声明来…

    html 2023年5月30日
    00
  • MTT S80显卡相当于N卡什么级别

    以下是“MTT S80显卡相当于N卡什么级别”的完整攻略: MTT S80显卡相当于N卡什么级别? MTT S80显卡是一款中高端显卡,它采用了AMD的GCN架构,具有2560个流处理器、160个纹理单元和64个ROP单元。那么,MTT S80显卡相当于N卡什么级别呢?下面是一些参考数据: 根据PassMark的测试结果,MTT S80显卡的性能得分约为NV…

    html 2023年5月18日
    00
  • HTML表格标记教程(31):单元格的宽度和高度属性WIDTH、HEIGHT

    HTML表格标记教程(31):单元格的宽度和高度属性WIDTH、HEIGHT HTML的表格是网页设计中最常用的元素之一,它可以将数据与其他内容整齐地排列成行和列。表格的单元格可以通过使用HTML属性来设置宽度和高度。 WIDTH 属性用于设置单元格的宽度,它的值可以是像素(px)或百分比(%)。除了设置每个单元格的宽度,还可以设置表格的总宽度。如果不指定表…

    html 2023年5月30日
    00
  • Notepad++如何设置标签栏锁定?Notepad++设置标签栏锁定教程

    以下是Notepad++设置标签栏锁定的攻略: 打开Notepad++:首先,您需要打开Notepad++文本编辑器。 打开设置:在Notepad++中,单击“设置”菜单,然后选择“首选项”。 打开标签栏选项:在“首选项”对话框中,选择“全局选项”选项卡。在选项卡中,找到“标签栏”选项,并单击它。 锁定标签栏:在“标签栏”选项中,找到“锁定标签栏”选项,并选…

    html 2023年5月17日
    00
  • 无线路由器密码怎么设置?磊科无线路由器设置密码方法

    以下是磊科无线路由器设置密码的攻略: 连接路由器:首先,将您的电脑或手机连接到磊科无线路由器的Wi-Fi网络中。您可以在路由器底部或背面找到Wi-Fi名称和密码。 打开路由器管理页面:在浏览器中输入路由器的IP地址,通常为192.168.1.1。输入用户名和密码,这些信息通常可以在路由器的标签上找到。如果您没有更改过这些信息,则默认用户名和密码为“admin…

    html 2023年5月17日
    00
  • Java Bean与xml互相转换的方法分析

    Java Bean与XML互相转换的方法分析 在Java开发中,Java Bean常常被用作数据封装的载体,而XML则成为了数据传输的重要格式之一。当我们需要将Java Bean中的数据导出成XML格式或者将XML数据转换成Java Bean对象时,就需要使用Java Bean与XML互相转换的方法。本文将介绍Java Bean与XML互相转换的三种常见方式…

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