xmlhtml语言:使用HTML 5 quirks模式的XML解析器和呈现器

[bsd3型,图书馆,文本,xml格式][建议标签]

包含XML和HTML 5的呈现器和解析器文档片段,共享数据结构,以便两者都很容易使用。文档片段是位不受某些高级结构规则(特别是,它们可以包含多个根元素)。

注意,这不是一个兼容的HTML5解析器。相反,它是一个HTML 5兼容文档的解析器。它没有实现HTML5解析算法,并且应该通常预期只能在上正确执行您相信符合HTML5的文档。这是不是用于实现网络爬虫的合适库,或者将暴露于文档的其他软件外部来源。结果也不是HTML 5节点结构,但更接近于物理结构结构。例如,省略的开始标记不是插入(因此,它们相应的结束标记也必须略)。


[跳到自述]

下载

注意:此软件包具有元数据修订在阴谋集团的描述中比tarball中包含的要新。要打开包括修订版在内的包装,请使用“cabal get”。

版本[RSS(RSS)] 0.1,0.1.0.1,0.1.1,0.1.2,0.1.3,0.1.4,0.1.5,0.1.5.1,0.1.5.2,0.1.6,0.1.7,0.2.0,0.2.0.1,0.2.0.2,0.2.0.3,0.2.0.4,0.2.1,0.2.2,0.2.3,0.2.3.1,0.2.3.2,0.2.3.3,0.2.3.4,0.2.3.5,0.2.4,0.2.5,0.2.5.1,0.2.5.2,0.2.5.3,0.2.5.4
更改日志 CHANGELOG.md公司
依赖关系 基础(>=4.5 && <5),火焰制造者(>=0.2 && <0.5),blaze-html公司(>=0.9 && <0.10),火焰标记(>=0.8 && <0.9),字节删除(>=0.9 && <0.13),字节测试生成器(>=0.10.4.0.2 && <0.11),容器(>=0.3 && <1.0),解析(>=3.1.2&&<3.2),文本(>=0.11 && <2.2),无序控制器(>=0.1.4 && <0.3)[细节]
许可证 BSD-3条款
作者 克里斯·史密斯<cdsmith@gmail.com>
维护人员 克里斯·史密斯<cdsmith@gmail.com>
修订过的 第4次修订制造商毒蛇2023-10-14T23:39:19Z
类别 文本,XML格式
主页 https://github.com/snapframework/xmlhtml
源回购 头部:git克隆https://github.com/snapframework/xmlhtml.git
已上传 通过毒蛇2023-02-13T07:40:41 Z
分配 Debian公司:0.2.5.2,免费BSD:0.2.3.4,LTSHaskell公司:0.2.5.4,NixOS:0.2.5.4,堆叠:0.2.5.4
反向依赖关系 29直接,56间接[细节]
下载 总计42754人(过去30天内有48人)
额定值 (尚未投票)[估算人贝叶斯平均]
您的评分
  • λ
  • λ
  • λ
状态 可用文档[生成日志]
上次成功报告时间:2023-02-13[所有1个报告]

xmlhtml-0.2.5.4自述文件

[返回包描述]

xmlhtml-XML和HTML5解析和呈现

GitHub CI

该库实现了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。

使用文档树很容易通过两种方式完成。

  1. 文本。XmlHtml导出文档树类型(特别是document和Node)以及getAttribute、setAttribute、tagName、childNodes等函数与他们合作。

  2. 文本。XmlHtml。游标导出节点林的拉链,您可以使用它定位导航并修改文档树。

基本上就是这样。希望这是一个非常简单的包。

待办事项:

  1. 在字符编码方面做得更好。目前,他们基本上是忽略,我们只使用字节顺序标记来区分三种必需的编码。我们应该实现编码嗅探规则用于XML(声明)和HTML5。

  2. 基准测试并提高解析器和呈现器的性能。

  3. 确保呈现始终给出错误,而不是写入无效文档。(这是一个好主意吗?它确实限制了渲染速度。)