14.0 概述
XML在很多领域都是非常重要的,如信息存储和获取、发布和网络通信等等;在这一章中,你将学会如何在C++中处理XML。因为这本书是关于C++而不是XML的,所以我假定你对我讨论的一些XML相关的技术都有一定的经验,如SAX、DOM、XML schema、XPath和XSLT等。如果你并不是对所有的这些XML相关领域都熟悉,也不用着急;这一章的各节或多或少是相互独立的,因此你可以跳过某几节也能明白其余的。并且每一节都给出了它使用的XML的一些概念和工具的简单解释。
如果你熟悉另外的一些编程语言,如JAVA,你或许期望在C++的标准类库中找到一些处理XML的一些工具。不幸的是,当C++标准形成时,XML还处在它的发展初期,或许在未来的C++标准类库版本中将会增加XML处理的一些库,但现在在C++中你不得不依赖于那些第三方的XML类库。
在你开始阅读这一章的各节之前,你或许想下载和安装本章中我要讨论的那些类库。表14-1给出了每个类库的主页;表14-2说明了每个库的一些功能和本章讨论这些类库的章节。这两个表没有给出每个库对应的XML规范的级别,因为这些库也是在不断地改变当中。
表14-1 C++中处理XML的类库
库名 主页
TinyXml www.grinninglizard.com/tinyxml
Xerxes xml.apache.org/xerces-c
Xalan xml.apache.org/xalan-c
Pathan 1 software.decisionsoft.com/pathanIntro.html
Boost.Serialization www.boost.org/libs/serialization
表14-2 这些类库是如何使用的
库名 功能特征 章节
TinyXml DOM(非标准) 14.1
Xerxes SAX2、DOM、XML Schema 14.2~14.8
Xalan XSLT、XPath 14.7~14.8
Pathan XPath 14.8
Boost.Serialization XML Serialization 14.9






