RapidXML - Как открыть файл XML с сервера?

У меня возникли проблемы с чтением файла xml с сервера. Когда файл открывается локально на компьютере, он работает нормально. Однако, когда файл открывается из местоположения на сервере, он не работает. Вы знаете, в чем может быть проблема? Я неправильно использую косую черту?

Следующие работы:

rapidxml::file<> xmlFile("myfile.xml");
rapidxml::xml_document<> doc;

Не работает следующее:

rapidxml::file<> xmlFile("http://localhost/myfile.xml");
rapidxml::xml_document<> doc;

person code    schedule 16.01.2014    source источник
comment
действительно ли файл находится на сервере и доступен из браузера?   -  person user 1007017    schedule 16.01.2014
comment
Ага. Я использовал тот же URL-адрес в браузере, и я могу просматривать xml... Я не уверен, является ли это ограничением RapidXML или я использую неправильный тип прямой/обратной косой черты в своей строке..   -  person code    schedule 16.01.2014
comment
это виндовс сервер?   -  person user 1007017    schedule 17.01.2014
comment
извините, я не понимаю вашего комментария   -  person code    schedule 17.01.2014
comment
это виндовс сервер?   -  person user 1007017    schedule 17.01.2014
comment
да у меня виндовс 7   -  person code    schedule 17.01.2014
comment
У вас есть Rapidxml? Это работает для вас?   -  person code    schedule 17.01.2014
comment
И я не понимаю, в чем проблема, так как чтение файла работает, как вы говорите   -  person user 1007017    schedule 17.01.2014
comment
Если я помещу файл в тот же каталог, что и мое приложение cpp, оно сработает. Но если я читаю файл из папки сервера (я использую Apache), он не читает xml. Я не знаю, является ли это проблемой rapidxml или строка, которую я использую выше, неверна.   -  person code    schedule 17.01.2014
comment
Почему вы должны загружать что-то с локального хоста через http, если оно уже есть в файловой системе на вашем локальном хосте?   -  person user 1007017    schedule 17.01.2014
comment
давайте продолжим это обсуждение в чате   -  person user 1007017    schedule 17.01.2014


Ответы (2)


Почему бы вам не использовать библиотеку загрузчика, такую ​​​​как «curl», и не загрузить ее на свой локальный компьютер и не использовать ее как обычную работу с файловой системой.

person dg_no_9    schedule 16.01.2014
comment
Хм, я бы предпочел иметь возможность читать xml напрямую с сервера. Я использовал тот же URL-адрес в браузере, и я могу просматривать xml... Я не уверен, является ли это ограничением RapidXML или я использую неправильный тип прямой/обратной косой черты в своей строке.. - person code; 16.01.2014

RapidXML — это просто анализатор XML, а не HTTP-клиент. Вам нужно будет использовать клиентскую библиотеку HTTP для извлечения файла из URL-адреса.

person Roddy    schedule 17.01.2014
comment
Ааа, понятно... Я никогда раньше не делал ничего подобного (доступ к файлу через HTTP для извлечения файла). Есть ли у вас какие-либо предложения о том, какую библиотеку использовать? Есть ли что-то в стандартной библиотеке, что я могу использовать? cplusplus.com/reference Будем признательны за любую помощь. - person code; 18.01.2014
comment
@user1456962. Это зависит от вашей ОС, инструментов разработки и т. д. Но посмотрите на этот вопрос: stackoverflow.com/questions/1124129/ - person Roddy; 21.01.2014