如何删除节点&它的孩子用XML

时间:2011-08-10 12:01:10

标签: c++ xml parsing mfc msxml

我在从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 个答案:

答案 0 :(得分:1)

Getitem(index+2)只会返回index + 2th项的句柄。

要删除节点,您还需要通过调用来分离项目 Getitem(index)->detach()