zoukankan      html  css  js  c++  java
  • Java 解析 XML

    Java 解析 XML

    标签: Java基础


    XML解析技术有两种 DOM SAX

    • DOM方式
      依据XML的层级结构在内存中分配一个树形结构,把XML的标签,属性和文本等元素都封装成树的节点对象
      • 长处: 便于实现
      • 缺点: XML文件过大可能造成内存溢出
    • SAX方式
      採用事件驱动模型边读边解析:从上到下一行行解析,解析到某一元素, 调用对应解析方法
      • 长处: 不会造成内存溢出,
      • 缺点: 查询不方便,但不能实现

    不同的公司和组织提供了针对DOM和SAX两种方式的解析器


    JAXP 解析

    JAXP是JavaSE的一部分,在javax.xml.parsers包下,分别针对dom与sax提供了例如以下解析器:

    • Dom
      • DocumentBuilder
      • DocumentBuilderFactory
    • SAX
      • SAXParser
      • SAXParserFactory

    演示样例XML例如以下,以下我们会使用JAXP对他进行 操作

    • config.xml
    <?

    xml version="1.0" encoding="utf-8"?> <!DOCTYPE beans SYSTEM "constraint.dtd"> <beans> <bean id="id1" class="com.fq.domain.Bean"> <property name="isUsed" value="true"/> </bean> <bean id="id2" class="com.fq.domain.ComplexBean"> <property name="refBean" ref="id1"/> </bean> </beans>

    • constraint.dtd
    <!ELEMENT beans (bean*) >
            <!ELEMENT bean (property*)>
            <!ATTLIST bean
                    id CDATA #REQUIRED
                    class CDATA #REQUIRED
                    >
    
            <!ELEMENT property EMPTY>
            <!ATTLIST property
                    name CDATA #REQUIRED
                    value CDATA #IMPLIED
                    ref CDATA #IMPLIED>

    JAXP-Dom

    /**
     * @author jifang
     * @since 16/1/13下午11:24.
     */
    public class XmlRead {
    
        @Test
        public void client() throws ParserConfigurationException, IOException, SAXException {
            // 生成一个Dom解析器
            DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    
            // 解析XML文件
            Document document = builder.parse(ClassLoader.getSystemResourceAsStream("config.xml"));
    
            // ...
        }
    }

    DocumentBuilderparse(String/File/InputSource/InputStream param)方法能够将一个XML文件解析为一个

  • 相关阅读:
    MybatisProperties注册IOC容器和初始化
    Springboot源码之application.yaml读取过程
    DataSource的注册容器和初始化
    修改ha_config配置文件
    读书笔记--Python基础教程 001
    Python实现购物车小程序
    Python3实现三级菜单
    实现用户登录并且输入错误三次后锁定该用户
    day1-python 的基础部分
    翻译:《实用的Python编程》06_02_Customizing_iteration
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/7247316.html
Copyright © 2011-2022 走看看