MFC 操作XML文件

MFC里可以直接使用DOM,不需要手动添加额外的头文件,只需要在CWinApp::InitInstance()里调用CoInitialize(NULL)初始化COM,在CWinApp::ExitInstance里调用CoUninitialize()释放COM就行了。

  XML

<root>

<childnode>

<test attribut1=" att1" attribut2="att2" attribut3="att3" attribut4="att4"/>

</childnode>

</root>

//

//修改attribut4的值

CComPtr<IXMLDOMDocument> pDoc;
HRESULT   hr= pDoc.CoCreateInstance(CLSID_DOMDocument);
if (FAILED(hr))
{
return S_FALSE;
}
VARIANT_BOOL varBool;
COleVariant oleXmlFile=xmlFile;   //cstring xmlFile  xml文件的路径
pDoc->load(oleXmlFile,&varBool);
CComPtr<IXMLDOMNodeList> pNodeList;
pDoc->getElementsByTagName(L"test",&pNodeList);  //找到test元素
CComPtr<IXMLDOMNode> pNode;
long nLen;

pNodeList->get_length(&nLen);
pNodeList->get_item(0,&pNode);
CComBSTR bstrName;
pNode->get_nodeName(&bstrName);             //得到节点名称“test”
CComPtr<IXMLDOMNamedNodeMap> pNamenodeMap;
pNode->get_attributes(&pNamenodeMap);       //得到节点的所有属性
CComPtr<IXMLDOMNode>pAttribNode;
pNamenodeMap->get_item(3,&pAttribNode);   //得到attribut4属性,也是一个IXMLDOMNode类型
pAttribNode->get_nodeName(&bstrName);      //得到节点名称“attribut4
                 pAttribNode->put_nodeValue(olePlmPwd);     //修改属性值
         pDoc->save(oleXmlFile);                              //保存

猜你喜欢

转载自blog.csdn.net/jianghuai_j/article/details/52795479