xml parsing – Libxml2

“用libxml2来写程式就像是异国的陌生人给你的一个扣人心弦的拥抱那样。” Mark Pilgrim

Libxml2 是Gnome专案开发的XML C 剖析器跟工具包(但是Gnome平台外也可以使用),它是根据MIT License的免费软体,XML本身是一种元语言(metalanguage)用来设计标记语言,例如, to design markup languages, i.e. 具语意和结构的文字语言会加到两个角括号内使用额外的”标记”讯息内容内,HTML是最有名的标记语言,虽然这个函式库是用C写的,现在有很多的语言系结 使得它在其它的环境下也可以使用。

据了解Libxml2很容易移植,函式库可以在很多的系统(Linux, Unix, Windows, CygWin, MacOS, MacOS X, RISC Os, OS/2, VMS, QNX, MVS, VxWorks, …)下建构跟工作都不会有严重的问题。

Libxml2 实作了很多跟标记语言相关的标准:

在大多数的情况下libxml2尝试用相对一致严格地方式来实作规格,截至2.4.16版的释出,libxml2通过了OASIS XML Tests Suite所有的1800以上的测试。

在一些程度上libxml2提供了下列额外规格的支援但是没有完整实作的宣布:

  • 文件物件模型(Document Object Model,DOM) http://www.w3.org/TR/DOM-Level-2-Core/ 文件模型,但是它没有实作自己的API,gdome2在libxml2之上做了这个模型
  • RFC 959 :libxml2 实作一个基本的FTP 客户端程式码
  • RFC 1945 : HTTP/1.0, 这也是一个基本的 HTTP 客户端程式码
  • SAX:SAX2很像是跟早期expat版本相容的介面跟最小的SAX1实作

XML Schemas Part 1: Structure 的部份实作正在努力但是当时过早做出一致性声明。

单独文件: