千家信息网

​基于Pull解析器怎么实现

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要讲解了"基于Pull解析器怎么实现",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"基于Pull解析器怎么实现"吧!DOM 解析器将所有 XM
千家信息网最后更新 2025年01月19日​基于Pull解析器怎么实现

这篇文章主要讲解了"基于Pull解析器怎么实现",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"基于Pull解析器怎么实现"吧!

DOM 解析器将所有 XML 文档读取到内存中,然后允许您使用 DOM API 遍历 XML 树、检索所需的数据。这是非常直观的代码,并且,在某些方面比基于 SAX 的实现更加简单。但是,DOM 通常更加占用内存,因为一切内容都会先读取到内存中。这对于运行 Android 的移动设备来说是一个问题,但是当 XML 文档始终保持很小的大小时是可行的。这可能意味着,Android 的开发人员会认为 SAX 解析在 Android 应用程序上更加常见,因此为它提供了额外的实用工具。Android 还提供了另一种类型的 XML 解析器,它就是 pull 解析器。

XML pull 解析器

如前所述,Android 并未提供对 Java StAX API 的支持。但是,Android 确实附带了一个 pull 解析器,其工作方式类似于 StAX。它允许您的应用程序代码从解析器中获取事件,这与 SAX 解析器自动将事件推入处理程序相反。清单 10 显示了提要解析接口的一个 pull 解析器实现。

基于 Pull 解析器的实现

java代码:

public class XmlPullFeedParser extends BaseFeedParser { public XmlPullFeedParser(String feedUrl) { super(feedUrl); } public List< Message > parse() { List< Message > messages = null; XmlPullParser parser = Xml.newPullParser(); try { // auto-detect the encoding from the stream parser.setInput(this.getInputStream(), null); int eventType = parser.getEventType(); Message currentMessage = null; boolean done = false; while (eventType != XmlPullParser.END_DOCUMENT && !done){ String name = null; switch (eventType){ case XmlPullParser.START_DOCUMENT: messages = new ArrayList< Message >(); break; case XmlPullParser.START_TAG: name = parser.getName(); if (name.equalsIgnoreCase(ITEM)){ currentMessage = new Message(); } else if (currentMessage != null){ if (name.equalsIgnoreCase(LINK)){ currentMessage.setLink(parser.nextText()); } else if (name.equalsIgnoreCase(DESCRIPTION)){ currentMessage.setDescription(parser.nextText()); } else if (name.equalsIgnoreCase(PUB_DATE)){ currentMessage.setDate(parser.nextText()); } else if (name.equalsIgnoreCase(TITLE)){ currentMessage.setTitle(parser.nextText()); } } break;

感谢各位的阅读,以上就是"基于Pull解析器怎么实现"的内容了,经过本文的学习后,相信大家对基于Pull解析器怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

代码 内存 内容 程序 学习 事件 就是 应用程序 文档 问题 应用 可行 实用 直观 人员 大小 如前所述 实用工具 工具 常见 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 普陀区节能软件开发定制价格 数据库中怎么查看软件登录密码 字符串数组保存到数据库 网络安全设计应遵循什么原则 国内邮件服务器 江苏pdu服务器专用电源专卖店 网络安全教育内容缺失表现 学软件开发哪种比较简单 网络技术对人文知识的影响 网络安全法四川宣传 网络安全申请 软件开发中经典阶段包括哪些 张晓阿里巴巴大数据库 无锡电话软件开发代理品牌 网络安全的要素包括 服务器安全狗宝塔 还原网络设置不成功找不到服务器 北京高价服务器回收 端游方舟服务器为什么加不进去 华为h22h03服务器 中国网络安全精英卡 服务器的集中认证和管理 高一网络安全征文大学生 空间数据库建模技术报告 网络安全法是为了维护 SW数据库版本低 合川网络安全与信息委员会 计算机网络安全需求分析 如何通过数据库查看安装目录 生成式对抗网络 网络安全
0