¡¡

Ïà¹Ø·ÖÀà VCÈëÃÅ ->VC ->VCShare

ʮһ xml

¹Ø¼ü×Ö VC xml

xml

                                                  ºÎÖ¾µ¤

ÎÒÃǽ¨Á¢Ò»¸ö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;

         }

}




ÉÏһƪ:Ê® ÏûÏ¢
ÏÂһƪ:Ê®¶þ µ÷ÓÃÆäËü³ÌÐò

¡¡

ƒ