永发信息网

如何用MSXML2操作XML配置文件

答案:1  悬赏:70  手机版
解决时间 2021-01-23 18:27
  • 提问者网友:轮囘Li巡影
  • 2021-01-22 22:20
如何用MSXML2操作XML配置文件
最佳答案
  • 五星知识达人网友:有你哪都是故乡
  • 2021-01-22 23:54
椋?芙崃艘恍┲饕?墓?蹋?龉┎慰肌?. 初始化定义DOM模型中的文档对象CComPtr m_spDoc; HRESULT hr = S_OK; 初始化库对象 SafeCreateInstance(hr, m_spDoc, __uuidof(MSXML2::DOMDocument26)); char *pPath="TSCprofiles.xml"; CComBSTR Path = CComBSTR(pPath); 将XML文件导入内存中的文档对象 VARIANT_BOOL success=m_spDoc->load(CComVariant(Path)); 3. 获取结点实例——已知结点名字一般用于获取根结点,因为不会出现几个同名根结点。CComPtr spNode; CComPtr spChildren; 获取文档中的所有一级结点(结点名= RequiredNodeName) m_spDoc->documentElement->get_childNodes(&spChildren); long NumChildren = 0; spChildren->get_length(&NumChildren); CComBSTR NodeName; int i = 0; spChildren->item[i]->get_nodeName(&NodeName); 遍历结点名字 while ((NodeName != RequiredNodeName) && (++i < NumChildren)) { NodeName.Empty(); spChildren->item[i]->get_nodeName(&NodeName); } if (i < NumChildren) { spNode = spChildren->item[i]; } return spNode; 4. 读取子结点——已知父结点及子结点名在获得根结点后,一般会有若干子结点,根据自结点名字获得子结点的方法很有用。CTSCInstallHelperDlg::getChildNodeByName(CComPtr spParentNode, BSTR nodeName,CComPtr& spChildNode){ ASSERT(spParentNode!=NULL); CComPtr spChildrens; spParentNode->get_childNodes(&spChildrens); long count=0; spChildrens->get_length(&count); for(int len=0;lenget_item(len,&spChildNode); BSTR name; spChildNode->get_nodeName(&name); if(wcscmp(name,nodeName)==0) return; spChildNode=NULL; } spChildNode=NULL;} 5. 读取属性值——已知结点及属性名属性其实相当于一个子结点。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯