ifstream fin("tree.xml");
if (fin.fail()) return 1;
fin.seekg(0, ios::end);
size_t length = fin.tellg();
fin.seekg(0, ios::beg);
char* buffer = new char[length + 1];
fin.read(buffer, length);
buffer[length] = '\0';
fin.close();
xml_document<> doc;
doc.parse<parse_full>(buffer);
// doc.parse<0>(buffer);
delete [] buffer;
cout << "The first node is '" << doc.first_node()->name() << "'\n";
for (xml_node<>* n = doc.first_node("card")->first_node(); n;
n = n->next_sibling())
{
char* v = n->value();
if (!v || !*v) v = "(empty)";
cout << n->name() << " : " << v << '\n';
}
這是我所使用RapidXML XML解析編寫的代碼,但它拋出異常「的存儲位置0x0011fc20 rapidxml :: PARSE_ERROR ..」請提出這方面的任何修補程序。感謝名單RapidXML拋出異常
你有沒有與像xmllint --validate一些外部工具驗證你的XML輸入? – thiton
不錯,但它的一個小XML文件 「<?xml version =」1.0「?> <目名稱= 「mesh_root」> \t <! - 這裏是一個網狀節點! - > \t一些文本 \t <![CDATA [someothertext]]> \t一些文字 \t <節點attR1位= 「VALUE1」 attR2位= 「VALUE2」/> \t <節點attR1位= 「VALUE2」> \t \t \t <?包括somedata?>」 –
Sokio