xmlParseFile vs xmlReadFile(libxml2)

时间:2013-10-11 09:52:11

标签: c libxml2

我正在使用libxml2库编写一些C代码来读取XML文件。为此目的似乎有两个不同的函数,xmlParseFilexmlReadFile,并且我不确定它们之间的区别(除了xmlReadFile()需要一些额外的参数这一事实。)< / p>

libxml2网站上的示例有时使用xmlParseFile,有些使用xmlReadFile。

那么什么时候应该使用xmlParseFile?何时应该使用xmlReadFile? 我找不到任何可以解释这一点的东西。

3 个答案:

答案 0 :(得分:3)

xmlReadFile()更强大,因为它能够获取URL而不是本地文件路径,并允许指定更多选项(http://xmlsoft.org/html/libxml-parser.html#xmlParserOption),因此我倾向于使用它而不是xmlParseFile( )。也就是说,如果您正在解析本地XML文件而不使用解析器选项,那么您可以使用xmlParseFile()。

答案 1 :(得分:0)

xmlReadFile()是解析XML的更强大和最新版本。我也用它代替xmlParseFile()。

答案 2 :(得分:0)

我有xml到达TCP管道上的字符缓冲区“ msg”,所以我使用libxml2调用xmlReadDoc(),如下所示,并带有选项XML_PARSE_NOBLANKS和XML_PARSE_OLD10

xmlDocPtr parsed_xml_dom;
parsed_xml_dom = xmlReadDoc((xmlChar *)(msg), NULL, NULL, XML_PARSE_NOBLANKS| XML_PARSE_OLD10);