MFC 操作XML文件

前端之家收集整理的这篇文章主要介绍了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); //保存

猜你在找的XML相关文章