手动编译的好处是可以获得最新的头文件及库,下载最新的源代码,以现在的2.7.6为例,windows xp+vc6 sp6环境,(vc7,vc8,vc9类似)
进入libxml2-2.7.6/win32/目录下,其实看readme就知道怎么编译了~~(不过cscript运行有小问题,需要加一个参数)
具体过程如下:
1,配置环境,在cmd下,进入到libxml2-2.7.6/win32/下,运行cscript //E:jscript configure.js help,列出帮助。默认参数的话,cscript //E:jscript configure.js include=c:/XXXX/include lib=c:/XXXX/lib,include和lib是头文件和库目录,需要iconv的(zip支持默认是no,打开的话,也要加上zlib的,iconv.dll也要在搜索路径中)。不能有空格(用引号引起来应该可以),嫌麻烦的话,就可以添加到PATH环境变量中去,这样省事。
2. 运行nmake /f Makefile.msvc
我的是在生成XXXtest.exe时错误退出了。不过dll和lib都已经生成好了。
mingw编译见README.
--------------------------------------------------------分割线------------------------------------------------------------------------
基本API操作,google之。
libxml内部处理以UTF-8进行的,xmlReadFile/xmlSaveFormatFileEnc读写文件可以指定特定的编码。在unix下不存在编码问题。都是utf-8。
节点类型:typedef enum {
XML_ELEMENT_NODE= 1,
XML_ATTRIBUTE_NODE= 2,
XML_TEXT_NODE= 3,
XML_CDATA_SECTION_NODE= 4,
XML_ENTITY_REF_NODE= 5,
XML_ENTITY_NODE= 6,
XML_PI_NODE= 7,
XML_COMMENT_NODE= 8,
XML_DOCUMENT_NODE= 9,
XML_DOCUMENT_TYPE_NODE= 10,
XML_DOCUMENT_FRAG_NODE= 11,
XML_NOTATION_NODE= 12,
XML_HTML_DOCUMENT_NODE= 13,
XML_DTD_NODE= 14,
XML_ELEMENT_DECL= 15,