Rapidxml и начальные теги
У меня есть несколько проблем с rapidxml. Когда я компилирую свой код, начальные теги не включаются... все, и вся помощь будет принята с благодарностью
int main(){
xml_document<> doc;
//xml declaration
xml_node<>* decl = doc.allocate_node(node_declaration);
decl->append_attribute(doc.allocate_attribute("version","1.0"));
decl->append_attribute(doc.allocate_attribute("encoding", "utf-8"));
doc.append_node(decl);
// root node
xml_node<>* root = doc.allocate_node(node_element, "root");
root->append_attribute(doc.allocate_attribute(""));
doc.append_node(root);
// child/sibling node
xml_node<>* sibling0 = doc.allocate_node(node_element, "old");
root->append_node(sibling0);
xml_node<>* sibling = doc.allocate_node(node_element,"boy");
root->append_node(sibling );
std::string xmlstring;
print(back_inserter(xmlstring), doc);
cout << xmlstring << endl;}
1 ответ
Решение
Помимо необходимых #includes и пропавших без вести using namespace rapidxml;
Ваш код компилируется и работает нормально для меня.
xmlstring содержит это:
<?xml version="1.0" encoding="utf-8"?>
<root ="">
<old/>
<boy/>
</root>
Так как old
а также boy
не имеют контента, они используют теги пустых элементов XML, <tagname/>
а не начальная и конечная пары, такие как <tagname></tagname>