_di_IXMLNode ixml_parent; // Определен. В нем есть дети
_di_IXMLNode IXML_GET_NODE; // тоже есть дети и определен
for (int i = 0; i < IXML_GET_NODE->ChildNodes->Count; i++)
{
_di_IXMLNode di = IXML_GET_NODE->ChildNodes->Nodes;
_di_IXMLNode child_node = ixml_parent->AddChild(WideString("test"));
for (int j = 0; j < di->AttributeNodes->Count; j++)
{
_di_IXMLNode attr = di->AttributeNodes->Nodes[j];
if (attr->HasChildNodes)
{
child_node->SetAttribute(WideString("id"), WideString(attr->NodeValue));
child_node->SetAttribute(WideString("itName"), WideString(attr->NodeValue));
}
}
Как скопировать детей из узла _di_IXMLNode
Код:
Беда в том. что у меня не копируется. А получается что вырезается и вставляется (( как именно скопировать детей из одного узла в другой?
Меняем вопрос. Вопрос такой - как мне скопировать узел _di_IXMLNode?
IXMLNode::CloneNode
Creates a copy of this node and returns its interface.
[/quote]
например есть у нас уже SomeNode и в неё есть потомки
Код:
_di_IXMLNode temp;
temp = SomeNode->CloneNode();
temp = SomeNode->CloneNode();
и всё, ты скопировал элемент с потомками вместе.
Спасибо большое. Я весь хелп перерыл, а на клонирование как-то внимания не обращал! Как оказалось - все гораздо проще.
пользуй на здоровье :)
Код:
_di_IXMLNode clone_node; // в нем содержаться узлы и аттрибуты
IXML_GET_NODE = clone_node->CloneNode(true);
// потом
for (int i = 0; i < IXML_GET_NODE->ChildNodes->Count; i++)
{
_di_IXMLNode some_node = IXML_GET_NODE->ChildNodes->Nodes;
ixml_parent->ChildNodes->Add(some_node);
}
IXML_GET_NODE = clone_node->CloneNode(true);
// потом
for (int i = 0; i < IXML_GET_NODE->ChildNodes->Count; i++)
{
_di_IXMLNode some_node = IXML_GET_NODE->ChildNodes->Nodes;
ixml_parent->ChildNodes->Add(some_node);
}
В clone_node - все узлы удалились (((