Как удалить узел и его дочерние элементы в XML - PullRequest
0 голосов
/ 10 августа 2011

У меня проблема с удалением узла из XML.

Вот схема моего XML,

<?xml version="1.0" encoding="ISO-8859-1"?>
<file>
    <header Description="Lovely Tool"></header>

  <ToolPath>C:\MyDocs\MyTool\</ToolPath>

   <ToolDetails>
    <Name>XML Tool</Name>
    <Description>XML parser</Description>
    <Comments>Good Tool for XML</Comments>
  </ToolDetails>
</file>

Я хочу удалить узел ToolDetails и его childs, я пытался так использовать MSXML, но он не работает,

Вот мой код

   CString childName;
    MSXML2::IXMLDOMNodePtr childPtr = NULL;
    MSXML2::IXMLDOMNodePtr delNode = NULL;
    int i=0;
    MSXML2::IXMLDOMNodeListPtr  pChildNodeListPtr = NULL;

delNode  = m_pRoot->GetchildNodes()->Getitem(index+2);//m_pRoot is the root ptr
childName=(char*)m_ptrDataBlock->nodeName;
HRESULT hr = m_pRoot->removeChild(delNode);

1 Ответ

1 голос
/ 10 августа 2011

Getitem(index+2) вернет ручку только для элемента index + 2th.

для удаления узла вам также нужно отсоединить элемент, вызвав Getitem(index)->detach()

...