• 【安卓7】XML文件解析——DOM解析


    DOM解析

           DOM ——Document Object Model(文档对象模型)

                   ——提供一套用于解析XML文档的API

                   ——按照XML定义的标记块来创建对象实例并设置相应的属性

                   ——可以按照标记块的层次结构来创建对象的层次结构

    DOM解析相关类/接口

             解析XML——包:javax.xml.parsers / org.w3c.dom

    1. DocumentBuilderFactory类DOM文档解析器的工厂类,用于创建解析器对象
    2. DocumentBuilder类DOM文档解析类,用于解析XML文档
    3. Document:文档实体接口
    4. Element类:代表文档的一个元素
    5. Node类:代表DOM模型中的实体的主要数据模型,既可是元素也可以是属性项
    6. NodeList类:节点列表
    7. DocumentBuilderFactory.newInstance();

     DOM解析常用方法

    • DocumentBuilderFactory.newInstance();          

        作用:创建文档模型工厂对象

    • DocumentBuilderFactory. newDocumentBuilder();

               作用: 创建解析器对象

    • DocumentBuilder.parse(InputStream is);

               作用: 将输入流代表的XML文档加载到内存中

    • DocumentBuilder.getDocumentElement();

               作用: 获得根元素

    • ElementgetChildNodes();

               作用: 获得当前元素的所有子节点元素。返回一个NodeList类型的对象

    • NodeList.item(i);

               作用: 返回节点列表中索引值为i的列表项

    • Node.getNodeType();

               作用: 获得节点类型

    • ElementgetAttribute(String s);

               作用: 获得指定属性的属性名称

    • ElementgetFristChild().getNodeValue();

               作用: 获得当前属性的数据

    DOM解析代码

    xml文件

    java代码

     1 protected void onCreate(Bundle savedInstanceState) {
     2         super.onCreate(savedInstanceState);
     3         try {
     4             //获得解析xml的对象
     5             DocumentBuilder db=DocumentBuilderFactory.newInstance ().newDocumentBuilder ();
     6             InputStream is=getResources().openRawResource(R.raw.xml文件名); //读取资源文件
     7             Document doc=db.parse(is);     //将整个XML文档加载到内存
     8             NodeList list=doc.getElementsByTagName("book");    //获取所有为book的节点
     9             for (int i=0;i<list.getLength();i++){
    10                 Element e=(Element) list. item(i);
    11                 Node name=e.getElementsByTagName("name").item(0);
    12                 //获得当前属性的数据
    13                 String value=name.getFirstChild().getNodeValue();
    14                 Toast.makeText(类名.this, value, 1000).show();
    15             }
    16         } catch (ParserConfigurationException e) {
    17             e.printStackTrace();
    18         } catch (SAXException e) {
    19             e.printStackTrace();
    20         } catch (IOException e) {
    21             e.printStackTrace();
    22         }
    23 }
    DOM解析
  • 相关阅读:
    python 异常处理
    python 文件
    python 面向对象程序设计基础
    python 数据结构与算法
    python中的基本数据结构
    关于python程序设计流程(未完结)
    python的字典(dict)的键值对存储规则
    python中字符串的方法及注释
    Element.requestFullscreen()方法
    oncontextmenu 事件
  • 原文地址:https://www.cnblogs.com/leelee/p/6994676.html
Copyright © 2020-2023  润新知