xml文件的格式如下:  
<eventDef>  
     <event>  
           <detail>  
                   <id>79999</id>  
                   <name>内部事件</name>  
             </detail>  
             <control>  
                   <enabled>true</enabled>  
                   <visible>false</visible>  
             </control>  
             <classify>  
                   <class>可疑网络活动类</class>  
                   <tech>事件监控</tech>  
                   <pop>低</pop>                      
                   <danger>低</danger>  
                   <device>Misc</device>  
                   <service>MISC</service>  
             </classify>  
     </event>  
<eventDef>  
我用MSXML DOM将xml文件读入,生成一个三态树。现在要更该三态树的选择状态,当树的一个item被选中时,这个项所对应的xml文件中的<enabled>...</enabled>的属性的值为true,当没被选中值为false。小弟现因为是初学不知道如何下手,请各位帮帮忙。先谢过了。祝大家新年快乐!

解决方案 »

  1.   

    <id>79999</id>,我想通过这个节点属性来查找。能不能提供一个例子,我是在找不到了。多谢了
      

  2.   

    http://support.microsoft.com/default.aspx?scid=kb;EN-US;q246230
      

  3.   

    例如:<id>xxx</id>输入-->
    参数1:id
    参数2:返回的 xxx 引用。返回值:TRUE 成功,FALSE 失败。BOOL CEmrXml::GetNodeText(CString csNode, CString &strText)
    {
    MSXML2::IXMLDOMNodePtr pNode = NULL;   
    csNode = "//"+csNode;
    pNode = this->m_pDomDocument2->selectSingleNode(csNode.AllocSysString()); if(pNode!=NULL)
    {
    BSTR text = NULL;
    HRESULT hr = pNode->get_text(&text);  
    if(SUCCEEDED(hr) && text!=NULL)
    {
        strText = static_cast<CString>(text);
    ::SysFreeString(text);
    return TRUE;
    }
    }
    return FALSE;
    }
      

  4.   

    谢谢横秋大哥,但是那里自我看得不大明白。
    wildmen(野男人),能不能给我一个完整的例子,怎么修改属性的值我还是很迷茫,因为没怎么用过,而且也比较急。多谢了
      

  5.   

    HRESULT hr = pNode->get_text(&text);  换个方法就是修改。pNode->put_text(text);
      

  6.   

    wildmen(野男人),selectSingleNode(csNode.AllocSysString());只选择了第一个<id>xxx</id>,我要选择后面的进行比较怎么办