zoukankan      html  css  js  c++  java
  • XML总结

    1 解析XML目的

      获取节点名、节点值、属性名、属性值

    2 获取xml文件内容的四种解析方式

    DOM SAX DOM4J JDOM
    DOM、SAX :java 官方方式,不需要下载jar包
    DOM4J、JDOM :第三方,需要网上下载jar包

    3 DOM使用步骤

    3.1 准备工作

    1、创建一个DocumentBuilderFactory的对象
    DocumentBuilderFactory dbf = DocumnetBuilderFactory.instance();
    2、创建一个DocumentBuilder的对象
    DocumentBuilder db = dbf.newDocumentBuilder();
    3、通过DocumentBuilder对象的parse方法加载xml文件到当前项目
    Document document = db.parse("*.xml");
    其中2、3两步需要try...catch异常。

    3.2 使用Dom解析xml文件的属性节点

    在不知道节点属性的个数和属性名时
    1、通过document.getElementByTagName("标签名")获得所有标签名的节点,得到一个NodeList集合
    2、通过NodeList.getLength()获得集合长度,遍历集合
    3、Node node = NodeList.item(index)获得里面的节点
    4、通过NamedNodeMap attrs = node.getAttributes()获取所有属性集合
    5、通过attrs.getLength()遍历集合,Node attr = atrrs.item(index)
    6、attr.getNodeName()获得属性名,attr.getNodeValue()获取属性值


    前提已经知道book节点有且只有1个id属性,将book节点进行强制类型转换,转换成element类型。
    1、通过document.getElementByTagName("标签名")获得所有标签名的节点,得到一个NodeList集合
    2、通过NodeList.getLength()获得集合长度,遍历集合
    3、element book=(element)bookList.item(i);//强制转换为element类型
    4、string attrValue = book.getAttribute("id");

    ChildNodes.item(i).getFirstChild().getNOdeValue()和 ChildNodes.item(i).getTextContent()的区别 子节点中还包含其他子节点时,后者可以把子节点的值都显示出来。
    getTextContent()获取节点中的text内容(即节点值).
    getNodeType().............有text,element,attr三个
    而Element如果要获取值,必须读取它的子节点,<name>content</name>认为content是namae的子节点;
    两种方法:
    getFirstChild().getNodeName();(获取子节点再获取值)
    getTextContent();(获取content方法)

    4 常用节点类型

    Element(NodeType:1;NodeName:元素名称;NodeValue:null)
    Attr(NodeType:2;NodeName:属性名称;NodeValue:属性值)
    Text(NodeType:3;NodeName:#text;NodeValue:节点内容)
    1.getFirstChild.getNodeValue():该节点下第一子节点的值
    2.getTextContent() :该节点下包括后代节点里的文本内容

    5 小结

    基础方法:DOM(平台无关的官方解析方式)、SAX(基于事件驱动的解析方式)
    扩展方法:JDOM、DOM4J(在基础的方法上扩展出的,只有在java中能够使用的解析方法)

    DOM:一次性将整个xml文件加载到内存中,形成DOM树
    优点:形成了树结构,直观好理解,代码更容易编写
    解析过程中树结构保留在内存中,方便修改
    缺点:当xml文件较大时,对内存消耗比较大,容易影响解析性能并造成内存溢出
    SAX:逐条语句判断解析
    优点:采用事件驱动模式,对内存消耗比较小
    适用于只需要处理xml中数据时
    缺点:不易编码
    很难同时访问同一个xml中的多处不同数据

    JDOM:仅使用具体类而不使用接口
    API大量使用了Collections类

    DOM4J:JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能
    DOM4J使用接口和抽象基本类方法,是一个优秀的Java XML API
    具有性能优异、灵活性好、功能强大和极端易使用的特点
    是一个开放源代码的软件

  • 相关阅读:
    ajax 发送请求无法重定向问题
    网页中转跳转的几种方式
    后台返回的HTML整个页面代码打开方法
    Json对象与Json字符串的转化、JSON字符串与Java对象的转换
    SpringMVC ModelAndView跳转失效
    springMVC中前台ajax传json数据后台controller接受对象为null
    $.ajax 中的contentType
    springMVC--请求的跳转和传值
    Windows NT WinLogon Notify
    虚拟机检测技术剖析
  • 原文地址:https://www.cnblogs.com/helloIT/p/5191744.html
Copyright © 2011-2022 走看看