| ¡¡
Ïà¹Ø·ÖÀà VCÈëÃÅ ->VC ->VCShare ʮһ xml¹Ø¼ü×Ö VC xmlxml ÎÒÃǽ¨Á¢Ò»¸öxmlÎļþ,ÄÚÈÝÈçͼËùʾ:
Ò»,½¨Á¢Ò»¸ö»ùÓÚ¶Ô»°¿òµÄ³ÌÐò,¹¤³ÌÃûΪxml; ¶þ, ³õʼ»¯OLE. BOOL CXmlApp::InitInstance() { AfxOleInit(); ¡¡. } Èý, ÔÚ¶Ô»°¿òÖÐÔö¼ÓÒ»¸ö°´Å¥,IDΪIDC_CREATE,ÎÒÃÇÔÚÕâ¸ö°´Å¥µÄÏìÓ¦º¯ÊýÖÐÉú³ÉÒ»¸öxmlÎļþ. void CXmlDlg::OnCreate() { MSXML2::IXMLDOMDocumentPtr pDoc; MSXML2::IXMLDOMElementPtr xmlRoot ; //´´½¨DOMDocument¶ÔÏó HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30)); if(!SUCCEEDED(hr)) { MessageBox("ÎÞ·¨´´½¨DOMDocument¶ÔÏó£¬Çë¼ì²éÊÇ·ñ°²×°ÁËMS XML Parser ÔËÐпâ!"); } //¸ù½ÚµãµÄÃû³ÆÎªchina pDoc->raw_createElement((_bstr_t)(char*)"china", &xmlRoot); pDoc->raw_appendChild(xmlRoot, NULL); MSXML2::IXMLDOMElementPtr childNode ; pDoc->raw_createElement((_bstr_t)(char*)"City", &childNode); childNode->Puttext("WuHan");//½ÚµãÖµ childNode->setAttribute("population","8,000,000");//ÊôÐÔÃû,ÊôÐÔÖµ childNode->setAttribute("area","10000"); xmlRoot->appendChild(childNode); pDoc->raw_createElement((_bstr_t)(char*)"City", &childNode); childNode->Puttext("ShangHai"); childNode->setAttribute("population","12,000,000"); childNode->setAttribute("area","12000"); xmlRoot->appendChild(childNode); //±£´æµ½Îļþ //Èç¹û²»´æÔھͽ¨Á¢,´æÔھ͸²¸Ç pDoc->save("f:\\he.xml"); } ²»ÒªÍüÁË#import "msxml4.dll" //ÒýÈëÀàÐÍ¿â ËÄ, ÔÙÔö¼ÓÒ»¸ö°´Å¥,IDΪIDC_GET,ÔÚÕâ¸ö°´Å¥µÄÏìÓ¦º¯ÊýÖжÁÈ¡xmlÎļþ. void CXmlDlg::OnGet() { //´´½¨DOMDocument¶ÔÏó MSXML2::IXMLDOMDocumentPtr pDoc; HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30)); if(!SUCCEEDED(hr)) { MessageBox("ÎÞ·¨´´½¨DOMDocument¶ÔÏó£¬Çë¼ì²éÊÇ·ñ°²×°ÁËMS XML Parser ÔËÐпâ!"); } //¼ÓÔØÎļþ pDoc->load("f:\\he.xml"); //ÔÚÊ÷ÖвéÕÒÃûΪCityµÄ½Úµã,"//"±íʾÔÚÈÎÒâÒ»²ã²éÕÒ MSXML2::IXMLDOMElementPtr childNode ; childNode = (MSXML2::IXMLDOMElementPtr)(pDoc->selectSingleNode("//City")); //µÃµ½½ÚµãÀàÐÍ MSXML2::DOMNodeType nodeType; childNode->get_nodeType(&nodeType); //½ÚµãÃû³Æ BSTR var; CString name; childNode->get_nodeName(&var); name = (char*)(_bstr_t)var; //½ÚµãÖµ VARIANT varVal; childNode->get_nodeTypedValue(&varVal); CString strValue = (char*)(_bstr_t)varVal; //½ÚµãÊôÐÔ,·ÅÔÚÁ´±íÖÐ MSXML2::IXMLDOMNamedNodeMapPtr pAttrs = NULL; MSXML2::IXMLDOMNodePtr pAttrItem; childNode->get_attributes(&pAttrs); long nCount ; pAttrs->get_length(&nCount); for(int i = 0 ; i < nCount ; i++) { pAttrs->get_item(i,&pAttrItem); //ÎÒÃÇ¿ÉÒÔͨ¹ýº¯Êýget_nodeName,get_nodeTypedValueµÃµ½ÊôÐÔÃûºÍÊôÐÔÖµ //Ò²¿ÉÒÔÖ±½ÓµÃµ½ CString strAttrName = (char*)(_bstr_t)pAttrItem->nodeName; CString strAttrValue = (char*)(_bstr_t)pAttrItem->nodeTypedValue; } } ÉÏһƪ:Ê® ÏûÏ¢ ÏÂһƪ:Ê®¶þ µ÷ÓÃÆäËü³ÌÐò ¡¡ |
|