libxml2经验--xmlReadFile

笔者的编程语言:C++

xmlReadFile的函数原型:

xmlDocPtr	xmlReadFile		(const char * filename, 
					 const char * encoding, 
					 int options)
filename: 目标文件的路径名或URL
encoding: 目标文件的编码方式,可以为NULL
options: 枚举变量xmlParserOption中的一个值或多个值的组合,可以为0。
返回值: XML文档的树结构。解析失败返回NULL

options的常用取值:

    XML_PARSE_RECOVER    = 1<<0,    /* recover on errors */   尝试修复错误语法
    XML_PARSE_NOERROR    = 1<<5,    /* suppress error reports */   不输出错误日志
    XML_PARSE_NOWARNING    = 1<<6,    /* suppress warning reports */   不输出警告日志
    XML_PARSE_PEDANTIC    = 1<<7,         /* pedantic error reporting */    输出详细的错误日志

XML_PARSE_NOERROR和XML_PARSE_NOWARNING的功能是“当运行命令行程序时不输出错误/警告日志”。


XML_PARSE_RECOVER和XML_PARSE_PEDANTIC的功能笔者不打保票。

XML_PARSE_RECOVER的意思是“尝试修复错误(不严格)的语法”,比如标签没有关闭的情况,采用XML_PARSE_RECOVER之后xmlReadFile会认为它是合法的。可以确定的是:采用XML_PARSE_RECOVER之后,只要目标文件可以访问,xmlReadFile就不会返回NULL,即使这个文件和XML八杆子打不着也不会。这个参数大概是用于解析html这种语法不严格的标记语言的。





你可能感兴趣的:(libxml2经验--xmlReadFile)