У меня есть приложение на c ++, которое манипулирует xml.Ну, в определенный момент моего приложения я получаю DOMNode *, а затем присоединяю его к элементу в качестве дочернего элемента.
Ну, проблема в том, что я хотел бы добавить параметры в этот узел ... хорошоэто узел, поэтому он не является элементом ... только элементы имеют параметры ...
Это мой код:
xercesc::DOMNode* node = 0;
std::string xml = from_an_obj_of_mine.GetXml(); /* A string with xml inside, the xml is sure an element having something inside */
xercesc::MemBufInputSource xml_buf((const XMLByte*)xml.c_str(), xml.size(), "dummy");
xercesc::XercesDOMParser* parser = new xercesc::XercesDOMParser();
parser->parse(xml_buf); /* parser will contain a DOMDocument well parsed from the string, I get here the node i want to attach */
node = my_pointer_to_a_preexisting_domdocument->GetXmlDocument()->importNode(parser->getDocument()->getDocumentElement(), true); /* I want to attach the node in parser to a node of my_pointer_to_an_el_of_my_preexisting_domdocument, it is a different tree, so I must import the node to attach it later */
my_pointer_to_an_el_of_my_preexisting_domdocument->appendChild(node);
Как видите, я хочу создать узелиз строки я создаю ее с помощью синтаксического анализа, а затем мне нужно импортировать узел, чтобы создать новый идентичный узел, принадлежащий дереву dom, к которому я хочу присоединить новый узел.Мои шаги:
Получить строку XML для присоединения к уже существующему dom (где-то хранится как документ)
Создать анализатор
Используя синтаксический анализатор, создайте дерево dom из строки
Из моего ранее существовавшего dom (где я хочу присоединить свой новый узел)вызвать импорт и клонировать узел, чтобы его можно было присоединить к уже существующему домену.
Присоединить его
Проблемаэтот импорт и импорт дают мне узел ... Я хочу, чтобы элемент прикреплялся ...
Я использую appendChild для добавления элементов тоже ... конечно, метод хочет DOMNode *, но дает ему DOMElement * (который наследует от DOMNode) все в порядке ...
Как я могу получить элемент из узла ???удалить wd_parser;