Sup*_*Jon 29
RapidXml附带了一个类,可以rapidxml::file在rapidxml_utils.hpp文件中为您执行此操作.就像是:
#include "rapidxml_utils.hpp"
int main() {
rapidxml::file<> xmlFile("somefile.xml"); // Default template is char
rapidxml::xml_document<> doc;
doc.parse<0>(xmlFile.data());
...
}
Run Code Online (Sandbox Code Playgroud)
请注意,该xmlFile对象现在包含XML的所有数据,这意味着一旦它超出范围并被销毁,doc变量就不再安全可用.如果在函数内部调用parse,则必须以某种方式将xmlFile对象保留在内存中(全局变量,new等),以使doc保持有效.
我自己是C++的新手......但我想分享一个解决方案.
因人而异!
喊出SiCrane这个线程: - ,只是用矢量替换"字符串" ---(感谢阿鲁)
请评论并帮助我学习!我对此很新
无论如何,这似乎有一个良好的开端:
#include <iostream>
#include <fstream>
#include <vector>
#include "../../rapidxml/rapidxml.hpp"
using namespace std;
int main(){
ifstream myfile("sampleconfig.xml");
rapidxml::xml_document<> doc;
/* "Read file into vector<char>" See linked thread above*/
vector<char> buffer((istreambuf_iterator<char>(myfile)), istreambuf_iterator<char>( ));
buffer.push_back('\0');
cout<<&buffer[0]<<endl; /*test the buffer */
doc.parse<0>(&buffer[0]);
cout << "Name of my first node is: " << doc.first_node()->name() << "\n"; /*test the xml_document */
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40943 次 |
| 最近记录: |