Добавить текстовую структуру xml в документ xml

У меня есть загруженный pugi::xml_document, например. <node></node> и хотите добавить текстовую структуру xml в этот документ pugi xml!

пример текстовой структуры xml: (хранится в std::string)

<cmd name="Test"><tag>some text</tag></cmd>

Окончательный xml-документ должен выглядеть так:

<node><cmd name="Test"><tag>some text</tag></cmd></node>

Как лучше всего это сделать в pugixml?

Благодарю вас!


person leon22    schedule 22.05.2014    source источник


Ответы (1)


Некоторая функция для загрузки документа (<node></node>):

bool Class::ReadXmlString(std::string xml)
{
    try
    {               
        pugi::xml_parse_result parseResult = m_xmlDoc->load(xml.c_str());    
        return parseResult;         
    }
    catch(std::exception &exp) 
    {       
        return false; 
    }
}

функция для добавления, например: <cmd name="Test"><tag>some text</tag></cmd>

bool Class::AddFragment(std::string node, std::string xmlValue)
{
    try
    {
        //  temporary document to parse the data from a string
        pugi::xml_document doc;
        if (!doc.load_buffer(xmlValue.c_str(), xmlValue.length())) return false;

        // select node from class member pugi::xml_document
        pugi::xml_node xmlNode = m_xmlDoc->select_single_node(("//" + node).c_str()).node();

        for (pugi::xml_node child = doc.first_child(); child; child = child.next_sibling())
        {
            xmlNode.append_copy(child);
        }
    }
    catch(std::exception &exp)
    {       
        return false;
    }
}
person leon22    schedule 22.05.2014