zoukankan      html  css  js  c++  java
  • DOM解析xml学习笔记

    一、dom解析xml的优缺点

     由于DOM的解析方式是将整个xml文件加载到内存中,转化为DOM树,因此程序可以访问DOM树的任何数据。  

     优点:灵活性强,速度快。

     缺点:如果xml文件比较大比较复杂会占用较大的内存资源。

    二、列子:

      xml文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <students>
    <student>
    <name id="001" xx="haha">张三</name>
    <sex>男</sex>
    <age>20</age>
    </student>
    <student>
    <name id="002" xx="哈哈">李四</name>
    <sex>女</sex>
    <age>18</age>
    </student>
    </students>

      解析:

    package com.java1234.xml;

    import java.io.IOException;

    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;

    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;
    import org.xml.sax.SAXException;

    public class DOM01 {

    public static void getNodeAttr(Node node){
    NamedNodeMap nodeMap= node.getAttributes();
    for(int i=0;i<nodeMap.getLength();i++){
    String nameAttr= nodeMap.item(i).getNodeName();
    String valueAttr= nodeMap.item(i).getNodeValue();
    System.out.println(nameAttr+":"+valueAttr);
    }

    }
    public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
    DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance(); //创建一个实例工厂
    DocumentBuilder builder=factory.newDocumentBuilder(); //创建文档构建模型

    Document doc= builder.parse("src/NewFile.xml");
    NodeList nodelist= doc.getElementsByTagName("students");
    Element element=(Element)nodelist.item(0);
    NodeList stuList= element.getElementsByTagName("student");
    for(int i=0;i<stuList.getLength();i++){
    Element stu=(Element)stuList.item(i);
    System.out.println("姓名:"+stu.getElementsByTagName("name").item(0).getFirstChild().getNodeValue());
    getNodeAttr(stu.getElementsByTagName("name").item(0));
    System.out.println("性别:"+stu.getElementsByTagName("sex").item(0).getFirstChild().getNodeValue());
    System.out.println("年龄:"+stu.getElementsByTagName("age").item(0).getFirstChild().getNodeValue());
    System.out.println("============================");
    }

    }

    }

  • 相关阅读:
    07.数组和方法
    05.运算符
    04.变量和常量
    专访Vue作者尤雨溪:Vue CLI 3.0重构的原因
    深入理解JavaScript的设计模式
    如何用纯 CSS 创作文本滑动特效的 UI 界面
    如何用纯 CSS 为母亲节创作一颗像素画风格的爱心
    如何用纯 CSS 创作一种有削铁如泥感觉的菜单导航特效
    如何用纯 CSS 创作 404 文字变形为 NON 文字的交互特效
    如何用纯 CSS 创作炫酷的同心矩形旋转动画
  • 原文地址:https://www.cnblogs.com/lmq3321/p/6672379.html
Copyright © 2011-2022 走看看