如果我有XML内容如何获得内部节点值
<aaa> 1111<bbb>222</bbb>333 </aaa>
,那么如何才能获得价值,这是“1111”和“333”
,但我只能得到第一个节点的值,它是“1111” 只是
请告知
代码是在这里
#include <iostream>
#include "rapidxml/rapidxml.hpp"
#include <string.h>
using namespace std;
using namespace rapidxml;
string content = "<aaa> 1112<bbb>222</bbb>333 </aaa>";
int main(int argc, char**argv) {
xml_document<> m_doc;
try {
m_doc.parse<0>(&content[0]);
} catch (rapidxml::parse_error &error) {
cout <<"parse_error\n";
exit(1);
}
xml_node<>* node = m_doc.first_node();
cout << "name = " <<node->name()<<endl;
cout << "value = "<< node->value() <<endl;
cout << "value_size = "<< node->value_size()<<endl;
m_doc.clear();
return 0;
}
输出是
name = aaa
value = 1111
value_size = 5
之前从未使用过该库,但有些东西告诉我应该通过使用'xml_node :: next_sibling'在节点列表上循环来获得所需的内容(请参阅教程http://rapidxml.sourceforge.net/manual.html# classrapidxml_1_1xml__node)。 – didierc 2014-10-31 06:49:29
@didierc使用next_sibling,将获得NULL点回来,因为没有兄弟节点 – Denny 2014-11-03 09:41:43