加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

MFC 操作XML文件

发布时间:2020-12-16 08:28:45 所属栏目:百科 来源:网络整理
导读:MFC里可以直接使用DOM,不需要手动添加额外的头文件,只需要在CWinApp::InitInstance()里调用CoInitialize(NULL)初始化COM,在CWinApp::ExitInstance里调用CoUninitialize()释放COM就行了。 XML root childnode test attribut1=" att1" attribut2="att2" att

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); //保存

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读