使用 Kotlin 对 XML 文件解析、修改及创建 一 XML 基本概念 XML 全称 ExtensibleMarkupLanguage,中文称可扩展标记语言。它是一种通用的数据交换格式,具有平台无关性、语言无关性、系统无关性的优点,给数据集成与交互带来了极大的方便。XML 在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已。 XML 可用来描述数据、存储数据、传输数据/交换数据。 XML 文档形成了一种树结构,它从”根部”开始,然后扩展到”枝叶”。DOM 又是基于树形结构的 XML 解析方式,能很好地呈现这棵树的样貌。XML 文档节点的类型主要有:
各节点定义:Node描述子节点DocumentXML document 的根节点Element, ProcessingInstruction, DocumentType, CommentDocumentType文档属性No childrenElement素Element, Text, Comment, ProcessingInstruction, CDATASection, EntityReferenceAttr属性Text, EntityReferenceProcessingInstruction处理指令No childrenComment注释No childrenText文本No childrenEntity实体类型项目Element, Text, Comment, ProcessingInstruction, CDATASection, EntityReference 二 XML 解析方式 一个 XML 文档的生命周期应该包括两部分:解析文档操作文档数据 那么接下来介绍如何来解析 XML 以及解析之后如何使用。 根据底层原理的不同,解析 XML 文件一般分为两种形式,一种是基于树形结构来解析的称为 DOM;另一种是基于事件流的形式称为 SAX。 2.1 DOM(Document Object Model) DOM 是用与平台和语言无关的方式表示 XML 文档的官方 W3C 标准。是基于树形结构的 XML 解析方式,它会将整个 XML 文档读入内存并构建一个 DOM 树,基于这棵树形结构对各个节点(Node)进行操作。 优点:允许随机读取访问数据,因为整个 Dom 树都加载到内存中允许随机的对文档结构进行增删 缺点:耗时,整个 XML 文档必须一次性解析完占内存,整个 Dom 树都要加载到内存中 适用于:文档较小,且需要修改文档内容 2.1.1 DOM 解析 XML 第一步:建立一个 Stuff.xml 文件 第二步:DOM 解析 第三步:解析结果输出 2.1.2 DOM 创建、生成 XML 第一步:创建新的 XML 并填充内容 第二步:生成 XML 文件 generatedXml.xml 2.2 SAX(Simple API for XML) SAX 处理的特点是基于事件流的。分析能够立即开始,而不是等待所有的数据被处理。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型文档来说是个巨大的优点。 优点:访问能够立即进行,不需要等待所有数据被加载只在读取数据时检查数据,不需要保存在内存中占用内存少,不需要将整个数据都加载到内存中允许注册多个 Handler,可以用来解析文档内容,DTD 约束等等 缺点:需要应用程序自己负责 TAG 的处理逻辑(例如维护父/子关系等),文档越复杂程序就越复杂单向导航,无法定位文档层次,很难同时访问同一文档的不同部分数据,不支持 XPath不能随机访问 xml 文档,不支持原地修改 xml 适用于: 文档较大,只需要读取文档数据。 2.2.1 SAX 解析 XML 第一步:新建 ContentHandler 解析类 第二步:新建解析器对指定 XML 进行解析 作者:话唠扇贝链接:https://juejin.cn/post/0来源:稀土掘金
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/52780.html