美文网首页
第四章 CPU实战:XML解析

第四章 CPU实战:XML解析

作者: 渊鸿shine | 来源:发表于2020-01-07 16:03 被阅读0次

一、背景

主要原因是自定义的HTML"tag-soup"解析器,只是简单的将输入分为『标签』和『非标签』两个类别,然后从这团乱麻中提取元数据。

二、HTML扫描器

HTML解析器最重要的操作就是便利源文件中的每个字符,并确定他属于标签还是之外的文本,将<b>粗体文本</b>这个HTML源代码切分成开口标签<b>、粗体文本内容、闭口标签</b>。

三、将回调映射为消息

将回调函数作为函数指针传递给扫描器,实际上已经非常接近于提供消息接口了,然而这会让接口变得非常复杂。

MPWSubData的一个微妙之处在于工作原理很像NSData,但实际上它是NSString的子类,所以兼容NSString,这仅适用于字节和字符之间具有1:1映射的字符串编码(例如ASCII或ISOLatin1,ASCII是UTF-8的一个子集),因此解析器要检测片段是否为纯ASCII,如果是则使用MPWSubData,否则创建一个简单的NSString。

MPWSubData对象使用缓冲区来进行初始化,而该缓存区引用了一个NSData对象,以及数据中对应区域的位置和长度,他将引用的NSData对象进行了retain操作,因此不会释放掉底层的缓存区。由于通常情况下,会多次使用相同的缓存区,因此要正确的设置缓存区,避免不必要的引用计数操作,从而达到优化目的,否则会严重影响总体性能。

相关文章

  • 第四章 CPU实战:XML解析

    一、背景 主要原因是自定义的HTML"tag-soup"解析器,只是简单的将输入分为『标签』和『非标签』两个类别,...

  • iOS解析XML

    2.0 XML解析 2.1 XML简单介绍 (1) XML:可扩展标记语言 (2) XML解析 2.2 XML解析...

  • iOS开发-XML解析

    一、 XML解析 1.1 XML简单介绍 (1) XML:可扩展标记语言 (2) XML解析 1.2 XML解析 ...

  • 3-XML解析

    3.0 XML解析 3.1 XML简单介绍 (1) XML:可扩展标记语言 (2) XML解析 3.2 XML解析...

  • XML、JSON解析

    XML解析 XML_GData解析 JSON解析

  • 05、网络解析

    解析:从事先规定好的格式中提取数据iOS开发常见的解析:XML解析,JSON解析 XML解析 XMl事例: XML...

  • Senior进阶 网络之数据解析之XML解析和JSON解析的用法

    Senior进阶 网络之数据解析之XML解析和JSON解析的用法 XML解析之SAX解析 XML解析之DOM解析 ...

  • XML

    NSXMLParser解析XML GDataXML解析XML

  • XML*

    目录 XML简介 XML基本语法 XML解析 * DOM解析   * DOM解析原理及工具   * DOM4J解析...

  • 面试相关

    1.Json解析与XML解析 Gson解析和FastJson ,FastJson解析效率高 XML解析,SAX解析...

网友评论

      本文标题:第四章 CPU实战:XML解析

      本文链接:https://www.haomeiwen.com/subject/ewwractx.html