转载自:http://www.sudu.cn/info/html/edu/20080403/259885.html
现在XML文档应用的方面特别的多. 我把以前写过的一个例子帖出来,以备以后使用. 第一部分:DOM解析: 概述:DOM解析将会把一个完整的XML文档读进来,生成一个结构树。这样会要把XML文档全部都加载到内在中。所以解析起来的速度会要慢一些。 1、如何加载xml文件: //创建DOM,加载XML文档 MSXML::IXMLDOMDocumentPtr pCommandDoc; pCommandDoc.CreateInstance(__uuidof(MSXML::DOMDocument)); pCommandDoc->put_async(VARIANT_FALSE); pCommandDoc->put_validateOnParse(VARIANT_FALSE); pCommandDoc->put_resolveExternals(VARIANT_FALSE); pCommandDoc->put_preserveWhiteSpace(VARIANT_TRUE); pCommandDoc->load(file.GetBuffer(0)); 2、在XML文档中查找指定的结点: //找到 MSXML::IXMLDOMNodePtr pRootNode=pCommandDoc->selectSingleNode("root/record"); if (pRootNode==NULL) { return ; } 3、得到XML文档中,结点的属性 CString strTemp; MSXML::IXMLDOMNamedNodeMapPtr pAttrs = NULL; pRootNode->get_attributes(&pAttrs); if (pAttrs==NULL) { return; } MSXML::IXMLDOMNodePtr pRequestTypeAttr=pAttrs->getQualifiedItem("name",""); _bstr_t strRequestType=pRequestTypeAttr->Gettext(); strTemp=strRequestType.operator char *(); 4、得到结点的内容 _bstr_t strVisiPort=pNode->Gettext(); 5、设置结点的内容 HRESULT hr=pNode->put_text(_bstr_t(m_strGatewayPassword)); 6、设置一个属性内容 IXMLDOMAttribute *pa=NULL; bstr = SysAllocString(L"属性1"); pXMLDom->createAttribute(bstr,&pNode); var = VariantString(L"strin"); pa->put_value(var); pRoot->setAttributeNode(pa,&pa1); (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|