基于光标读取xml stax入门

2023-11-17

 StAX 概述

  从一开始,Java API for XML Processing (JAXP) 就提供了两种方法来处理 XML:文档对象模型(DOM)方法是用标准的对象模型表示 XML 文档;Simple API for XML (SAX) 方法使用应用程序提供的事件处理程序来处理 XML。JSR-173 提出了一种面向流的新方法:Streaming API for XML (StAX)。其最终版本于 2004 年 3 月发布,并成为了 JAXP 1.4(将包含在即将发布的 Java 6 中)的一部分。

  如其名称所暗示的那样,StAX 把重点放在流上。实际上,StAX 与其他方法的区别就在于应用程序能够把 XML 作为一个事件流来处理。将 XML 作为一组事件来处理的想法并不新颖(事实上 SAX 已经提出来了),但不同之处在于 StAX 允许应用程序代码把这些事件逐个拉出来,而不用提供在解析器方便时从解析器中接收事件的处理程序。

  StAX 实际上包括两套处理 XML 的 API,分别提供了不同程度的抽象。基于指针的 API 允许应用程序把 XML 作为一个标记(或事件)流来处理;应用程序可以检查解析器的状态,获得解析的上一个标记的信息,然后再处理下一个标记,依此类推。这是一种低层 API,尽管效率高,但是没有提供底层 XML 结构的抽象。较为高级的基于迭代器的 API 允许应用程序把 XML 作为一系列事件对象来处理,每个对象和应用程序交换 XML 结构的一部分。应用程序只需要确定解析事件的类型,将其转换成对应的具体类型,然后利用其方法获得属于该事件的信息。

  基本原理

  为了使用这两类 API,应用程序首先必须获得一个具体的 XMLInputFactory。根据传统的 JAXP 风格,要用到抽象工厂模式;XMLInputFactory 类提供了静态的 newInstance 方法,它负责定位和实例化具体的工厂。配置该实例可设置定制或者预先定义好的属性(其名称在类 XMLInputFactory 中定义)。最后,为了使用基于指针的 API,应用程序还要通过调用某个 createXMLStreamReader 方法获得一个 XMLStreamReader。如果要使用基于事件迭代器的 API,应用程序就要调用 createXMLEventReader 方法获得一个 XMLEventReader


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于光标读取xml stax入门 的相关文章

随机推荐

  • python random.randint(0、2)_如何使用python random模块中的randint()函数?

    python中的random模块用于生成随机数 而要生成随机整数则需要用到 random模块里的randint 函数 randint 函数随机产生括号里两个参数之间的整数 且包括这两个参数 划定随机生成整数的范围 最小最大值 1 rando
  • ESP8266使用AT指令连接MQTT服务器

    注 不同的AT固件在使用时存在差异 此处使用的是安信可官方提供的MQTT透传AT固件 固件号 1471 本文为学习记录 仅作参考 如有不对之处 请留言 附 固件地址 AT固件汇总 安信可科技 ai thinker com https doc
  • JSON.parse()方法

    一 JSON的解析方法有两种 eval 和JSON parse var jsonstr str1 Hello str2 world var evalJson eval jsonstr var jsonParseJson JSON parse
  • python获取矩阵某一列元素

    今天写线性回归问题的时候遇到了一个问题 对于一个二维矩阵 python如何遍历其某一列元素 遍历一行是很简单的 直接使用索引即可 但是遍历一列呢 方法一 直接遍历法 使用一个循环 对每一行单独找出这列上的对应元素 方法二 列表解析法 这个方
  • webpack 常用配置

    环境搭建 既然是前端项目 那么就npm就必不可少 运行 npm install webpack cli g 来全局安装脚手架 随后使用 npm install webpack cli D 安装到工程下 在工程目录下创建 webpack co
  • stm32专题二十六:输入捕获 脉宽测量

    硬件设计 脉宽测量原理 当按键没有按下时 由硬件电路自动拉低 如果按键按下 则PA0产生上升沿 我们进行脉宽测量时 首先设置为上升沿捕获 然后在第一次捕获到上升沿时 将计数器清零 并设置捕获极性为下降沿捕获 当第二次捕获到信号时 就是一个完
  • Vigenere密码

    Vigenere密码技术 在单字符单表替换密码中 明文中的字符与密文中字符是一一对应的 在明文表中的字符也存在于在密文表中 明文中字符的统计特性在密文中没有得到改变 单字符多表替换密码技术是用一系列 两个以上 替换表依次对明文的字符进行替换
  • 跟据后台数据生成饼图及柱形图实例

    在做社团管理系统时 为了进一步完善功能 用jfreechar做了一个饼图与柱形图 做的比较粗糙 效果如下 现在跟大家分享一下实现方法 生成饼图 param list 传入参数为一个list list中包含多个map 这个list是从数据库中
  • ZooKeeper系统模型之集群间消息通信。

    ZooKeeper的消息类型大体上可以分为四类 分别是 数据同步型 服务器初始化型 请求处理型和会话管理型 数据同步型 数据同步型消息是指在Learner和Leader服务器进行数据同步的时候 网络通信所用到的消息 通常有DIFF TRUN
  • java 仓库管理_Java仓库管理系统(一)

    从小到大没有写日记的习惯 但本着互联网开放 共享的原则 并且马士兵老师曾说 当你学会一些技能的时候 看到别人正被你会的东西所困扰 你应该去帮助他 所以把仓库管理系统的详解记录一下 说的可能不那么专业 但基本都能听懂 本人编程起步 有错误请指
  • 常见手机快充协议介绍

    早在几年前 各厂家就在逐步推进手机的充电速度 随着QC PD等一系列的充电协议不断更新 各家手机厂家都有自己的快充解决方案 不仅功率不一样 手机间的充电协议与标准也变得越发复杂 不同品牌的手机快充名称也各有不同 所以我们需要先清楚我们的手机
  • 垃圾箱清空后数据恢复(亲测有效)

    辛辛苦苦写PPT写了两周 误删了还没发现 然后顺便把垃圾箱也清空了 wps还因为云空间已满不能同步上传 连个记录都没有 真的是差点气到心梗 经历了一个小时的百度 恢复了我的PPT 记录一下数据的恢复过程 无图 恢复的时候过于烦躁 忘记截图
  • STM32单片机IAP介绍

    1 什么是IAP 首先区分下两个概念 ISP和IAP ISP In System Programming 在系统中编程 通过芯片专用的串行编程接口对其内部的程序存储器进行擦写 IAP In Application Programming 在
  • Unity中UGUI的Text实现超链接点击的解决方案

    Unity实现超链接点击 功能简介 C 脚本 使用方法 Demo工程内截图 Demo地址 功能简介 1 同一个Text内可以实现多个不同字符区域的点击 2 适配了中文 英文 韩文 日文 阿拉伯语等 更多语种待测试 C 脚本 文件名 UITe
  • uni-app 微信小程序vendor.js 过大的处理方式和分包优化

    小程序工具提示vendor js过大 已经跳过es6向es5转换 这个转换问题本身不用理会 因为vendor js已经是es5的了 关于体积控制 参考如下 使用运行时代码压缩 HBuilderX创建的项目勾选运行 gt 运行到小程序模拟器
  • Shell脚本编写教程【二】——Shell 数组

    Shell脚本编写教程 二 Shell 数组 目录 https blog csdn net shn111 article details 131590488 参考教程 https www runoob com linux linux she
  • colmap利用已知的相机内外参数重建场景

    Colmap根据相机内外参数重建稀疏模型 COLMAP稀疏重建得图像内外参文件 colmap model converter input path output path output type TXT
  • android 蓝牙ble 133,java – Android蓝牙错误133

    我正在尝试连接到 Android上的蓝牙设备 我在onClientConnectionState处理程序中收到状态133 我并不总是得到这个错误 有时连接很好 我无法指出触发问题的原因 重新启动设备和我的repro应用程序后 我甚至立即使用
  • 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。(蓝桥杯)

    题描述 对于长度为5位的一个01串 每一位都可能是0或1 一共有32种可能 它们的前几个是 00000 00001 00010 00011 00100 请按从小到大的顺序输出这32种01串 输入格式 本试题没有输入 输出格式 输出32行 按
  • 基于光标读取xml stax入门

    StAX 概述 从一开始 Java API for XML Processing JAXP 就提供了两种方法来处理 XML 文档对象模型 DOM 方法是用标准的对象模型表示 XML 文档 Simple API for XML SAX 方法使