Извлечение XML-строки поддерева с помощью TinyXml2

Я хочу сделать то же самое, что и парень в этот вопрос.

Я хочу преобразовать дочерний элемент XML (и все его дочерние элементы) в строку XML, поэтому, если структура XML

<parent>
<child>
<value>abc</value>
</child>
<parent>

Я хочу XML для дочернего элемента, например,

<child>
<value>abc</value>
</child>

Мне плевать на пробелы. Проблема в том, что принятый ответ из другого вопроса, кажется, устарел, потому что нет никакого метода «Печать» для объектов XMLElement. Могу ли я сделать это с TinyXml2?

2

Решение

Я кодировал следующую функцию, которая помогает мне. Обратите внимание, что в нем могут быть ошибки — я работаю с очень простыми файлами XML, поэтому я не буду притворяться, что проверил все случаи.

void GenXmlString(tinyxml2::XMLElement *element, std::string &str)
{
if (element == NULL) {
return;
}

str.append("<");
str.append(element->Value());
str.append(">");

if (element->GetText() != NULL) {
str.append(element->GetText());
}

tinyxml2::XMLElement *childElement = element->FirstChildElement();
while (childElement != NULL) {
GenXmlString(childElement, str);
childElement = childElement->NextSiblingElement();
}

str.append("</");
str.append(element->Value());
str.append(">");
}
0

Другие решения


По вопросам рекламы [email protected]