2011-08-10 5 views
0

XML에서 노드 삭제에 문제가 있습니다. 여기 XML에서 노드 및 해당 하위 노드를 삭제하는 방법

내가 ToolDetails하고 childs, 난이 사용 MSXML 같은 시도 노드를 삭제하려면,

<?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> 

내 XML의 스키마입니다,하지만 여기에

내 코드입니다, 작동하지 않는

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

Getitem(index+2)index + 2th 항목에 대한 핸들을 반환합니다.

노드를 삭제하는 당신은 또한이 삭제되지, Getitem(index)->detach()

+0

없음을 호출하여 항목을 분리 할 필요가, 내가 – Naruto

+0

여기 찾고 시도 UR 방식을 :(시도 : http://read.pudn.com/ downloads108/소스 코드/창/대화/443834/3rdParty/XmlNodeWrapper.cpp __ HTM HTH ... –

+0

난은 "이 같은 노력했다. (나는 = 0; 나는 Getlength은(); 내가 ++) \t { \t \t childPtr = pChildNodeListPtr-> item [i] .Detach(); \t \t \t childName = (char *) childPtr-> nodeName; \t \t childName = (char *) childPtr-> text; \t \t hr = childPtr-> GetparentNode() - emoveChild (childPtr); \t \t "HR NULL을 받고 있습니다. ( – Naruto