我只是尝试通过MS Visual Studio使用libxml2读取/解析xml-Files。 到目前为止,安装成功。
首先尝试通过简单的c控制台应用程序中的xmlReadFile()读取在线http-xml。
在原始来源阅读它失败了,而阅读本地副本效果很好。
请参阅下面的完整代码。
通过
使用本地保存的xml文件doc = xmlReadFile(loc, NULL, 0);
给出正确的结果"当前观察"。
但如果我尝试通过
获取在线xml文件doc = xmlReadFile(rem, NULL, 0);
失败(doc == NULL) - > " I / O警告:无法加载HTTP资源"
问题: 是否有任何其他属性可以设置或其他东西,这可能会影响这个功能的行为?
整个代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <libxml/xmlreader.h>
#include <libxml/parser.h>
int main()
{
const char *loc = "C:/Users/dirkn/Documents/Visual Studio 2017/Projects/ConsoleApplication1/Debug/PHLI.xml";
const char *rem = "http://w1.weather.gov/xml/current_obs/PHLI.xml";
xmlDoc *doc = NULL;
doc = xmlReadFile(loc, NULL, 0);
//doc = xmlReadFile(rem, NULL, 0);
if (doc == NULL) {
printf("error: could not parse file.");
}
else
{
root_element = xmlDocGetRootElement(doc);
if (root_element->name != NULL)
printf(" %s\n", root_element->name);
xmlFreeDoc(doc);
}
/*
* Cleanup function for the XML library.
*/
xmlCleanupParser();
return(0);
}