, если у меня есть содержимое 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
@didierc, используя next_sibling, получит NULL-точку назад, coz нет ни одного узла-брака – Denny