xmlhtml-XML和HTML5解析和呈现
该库实现了XML和HTML5文档的解析器和呈现器碎片。这两个共享数据结构来表示文档树,因此您可以编写代码来轻松使用XML或HTML5。便利函数也可用于处理中的内部数据结构几种自然方式。
注意事项:
-
这两个解析器都是用来解析文档片段的,而不是完整的文件。这意味着他们不强制执行关于整体文档结构。不需要只有一个根节点,并且HTML 5实现从不插入任何丢失的开始标记。
-
XML解析器无法处理处理指令,或定义了实体。If会自动删除处理指令,如果遇到预定义实体对任何内容的实体引用(apos、quot、amp、lt和gt)。
-
HTML解析器实际上是一个具有HTML5 quirks模式的XML解析器。它应该只需解析符合HTML5规范的文档。然而,它是不兼容的HTML5解析器需要在许多方面与不符合要求的文档兼容不感兴趣。所以这是模板系统的一个很好的基础例如,但是web浏览器或web蜘蛛的基础非常差。
要开始,只需使用Text中的parseHTML或parseXML函数。XML HTML文件将ByteString解析为文档树。在另一侧,使用render to将文档树写回ByteString。
使用文档树很容易通过两种方式完成。
-
文本。XmlHtml导出文档树类型(特别是document和Node)以及getAttribute、setAttribute、tagName、childNodes等函数与他们合作。
-
文本。XmlHtml。游标导出节点林的拉链,您可以使用它定位导航并修改文档树。
基本上就是这样。希望这是一个非常简单的包。
待办事项:
-
在字符编码方面做得更好。目前,他们基本上是忽略,我们只使用字节顺序标记来区分三种必需的编码。我们应该实现编码嗅探规则用于XML(声明)和HTML5。
-
基准测试并提高解析器和呈现器的性能。
-
确保呈现始终给出错误,而不是写入无效文档。(这是一个好主意吗?它确实限制了渲染速度。)