VC++ÖвÙ×÷XML£¨MFC¡¢SDK£©
VC++ÖвÙ×÷XML£¨MFC¡¢SDK£©
2009Äê01ÔÂ07ÈÕ ÐÇÆÚÈý 22:33
XMLÔÚWin32³ÌÐò·½ÃæÓ¦¸ÃûÓÐÔÚWeb·½ÃæÓ¦Óõö࣬ºÜ¶à
Win32³ÌÐòÒ²Ö»ÊÇÓÃXMLÀ´´æ´æÅäÖÃÐÅÏ¢¶øÒÑ£¬¶øÇÒûÓÐ×ã¹»
µÄºÃ´¦µÄ»°»¹²»ÈçÓà ini¡£VC++Àï²Ù×÷XMLÓÐÁ½¸ö¿â¿ÉÒÔÓãº
MSXMLºÍXmlLite¡£MSXMLÓÖϸ·ÖÁËÁ½ÖÖ½Ó¿Ú£ºDOMºÍSAX2¡£XPû×Ô´øÓÐ XmlLite£¬Ö»×Ô´øÓÐ2.x¡¢3.x°æµÄMSXML£¬²»Ö§³ÖSAX2£¨ÐèÒªMSXML 4.0ÒÔÉÏ£©£¬ËùÒÔÓÅÏÈʹÓÃDOM¡£
DOMÊÇÒÔCOMÐÎʽÌṩµÄ£¬VC++Àïµ÷ÓÃDOM¿ÉÒÔ·Ö3ÖÖ·½·¨£º
1¡¢MFCÀïÓÃCComPtrµ÷ÓÃ
2¡¢SDKÀïÖ±½Óµ÷ÓÃDOM½Ó¿Ú
3¡¢SDKÀïÓÃÖÇÄÜÖ¸Õëµ÷ÓÃ
Õâ3ÖÖ·½·¨±¾ÖÊÉÏÊÇÒ»ÑùµÄ£¬Çø±ðÖ»²»¹ýÔÚÓÚÐèÒª±àÂëµÄ¶àÉÙ
¶øÒÑ£¬ÓÃCComPtr¿ÉÒÔ¼«´óµÄ¼ò»¯´úÂ룬ÏÂÃæÊǼ¸¸öÀý×Ó¡£
Àý×Óstocks.xml£º
<?xml version="1.0" encoding="utf-8"?>
<root>
<node1>text1</node1>
<node2>
<childnode1 attrib1="value1" attrib2="value2"/>
<childnode2 attrib1="value1"
attrib2="value2">childtext1</childnode2>
</node2>
</root>
Õâ¸öÀý×ÓÓ¦¸Ã°üº¬ÁËXML×î³£¼ûµÄÌØÕ÷Á˰ɣ¿
MFC
MFCÀï¿ÉÒÔÖ±½ÓʹÓà DOM£¬²»ÐèÒªÊÖ¶¯Ìí¼Ó¶îÍâµÄÍ·Îļþ£¬Ö»
ÐèÒªÔÚCWinApp::InitInstance()Àïµ÷ÓÃCoInitialize(NULL)³õʼ»¯ COM£¬ÔÚCWinApp::ExitInstanceÀïµ÷ÓÃCoUninitialize()ÊÍ·ÅCOM¾ÍÐÐÁË¡£
//¶ÁÈ¡XML
CComPtr<IXMLDOMDocument> spDoc; //DOM
spDoc.CoCreateInstance(CLSID_DOMDocument);
VARIANT_BOOL vb;
spDoc->load(CComVariant(OLESTR("stocks.xml")),
&vb); //¼ÓÔØXMLÎļþ
CComPtr<IXMLDOMElement> spRootEle;
spDoc->get_documentElement(&spRootEle); //¸ù½Úµã
CComPtr<IXMLDOMNodeList> spNodeList;
spRootEle->get_childNodes(&spNodeList); //×Ó½ÚµãÁбí
long nLen;
spNodeList->get_length(&nLen); //×Ó½ÚµãÊý
for (long i = 0; i != nLen; ++i) //±éÀú×Ó½Úµã
{
CComPtr<IXMLDOMNode> spNode;
spNodeList->get_item(i, &spNode);
ProcessNode(spNode); //½Úµã´¦Àíº¯Êý
}
//дÈëXML
CComPtr<IXMLDOMNode> spNode;
spRootEle->selectSingleNode(OLESTR("/root/node1"),
&spNode);
spNode->put_te
Ïà¹ØÎĵµ£º
C/C++³ÌÐòԱӦƸ³£¼ûÃæÊÔÌâÉîÈëÆÊÎö(1)
×÷ÕߣºËᦻª e-mail:21cnbao@21cn.com ³ö´¦£ºÈí¼þ±¨
1.ÒýÑÔ
±¾ÎĵÄд×÷Ä¿µÄ²¢²»ÔÚÓÚÌṩC/C++³ÌÐòÔ±ÇóÖ°ÃæÊÔÖ¸µ¼£¬¶øÖ¼ÔÚ´Ó¼¼ÊõÉÏ·ÖÎöÃæÊÔÌâµÄÄÚº¡£ÎÄÖеÄ
´ó¶àÊýÃæÊÔÌâÀ´×Ô¸÷´óÂÛ̳£¬²¿·ÖÊÔÌâ½â´ðÒ²²Î¿¼ÁËÍøÓѵÄÒâ¼û¡£
Ðí¶àÃæÊÔÌâ¿´ËÆ¼òµ¥£¬È´ÐèÒªÉîºñµÄ»ù±¾¹¦²ÅÄܸø³öÍêÃÀ ......
typedefΪCÓïÑԵĹؼü×Ö£¬×÷ÓÃÊÇΪһÖÖÊý¾ÝÀàÐͶ¨ÒåÒ»¸öÐÂÃû×Ö¡£µ±typedefÓë½á¹¹½áºÏʹÓÃʱ£¬»áÓÐһЩ±È½Ï¸´ÔÓµÄÇé¿ö£¬¶øÇÒÔÚCÓïÑÔºÍC++ÀïÃæÂÔÓвî±ð£¬±¾ÎĽ«Ïêϸ½²½âtypedef structµÄÓ÷¨¡£
µÚÒ»Õ typedef struct Óë structµÄÇø±ð
1. »ù±¾½âÊÍ
ty ......
C#×é¼þ¿ª·¢ÈËÔ±
ʲôʱºòʹÓÃoverride£¿Ê²Ã´Ê±ºòʹÓÃnew? ʲô½Ðshadowing?
ÖØÐ´¸¸ÀàµÄ·½·¨µÄʱºòÓÃoverrideÒÔʵÏÖ¶à̬£¬µ±ÄãÏëÆÁ±Î¸¸Àà³ÉÔ±µÄʱºòʹÓÃnew£¬shadowing»ù±¾¾ÍÊÇnewÓëoverrideÇø±ðµÈһЩ·½ÃæµÄÎÊÌ⣬¸öÈËÈÏΪŪÇåoverrideÓënew¾ÍûÓбØÒªÌØÒ⿼ÂÇshadowing¡£
½âÊÍvirtual¡¢sealed¡¢overrideºÍabstractµÄ ......
ÏñÔÚ×ùµÄ¸÷λһÑù£¬ÓÉÓÚ×ÔÉíµÄÐËȤ£¬ÎÒ¶ÔAJAX±à³Ì·½ÃæµÄÑо¿ÊdzÖÐø²»¶ÏµÄ¡£Ëæ×ŸÃÁìÓòµÄÉîÈ룬ÎÒÔ½À´Ô½·¢¾õËùνµÄä¯ÀÀÆ÷DOM£¬¼´HTML DOM£¬ÊÇÒ»¸ö·Ç³£ÖµµÃ¹Ø×¢µÄµã¡£Õâ¹ÛµãÔÚÓëͬÐÐÃǽ»»»Òâ¼ûµÄʱºòÒ²ÔøÌ¸µ½¹ý£¬¾ÍÊÇ£¬ÎÒÃÇÈÔȻȱ·¦¾ßÓÐÉî¶ÈµÄ¡¢¹æ·¶µÄDOM Level 1¸¨Öú¶ÁÎï£¬ÍøÂçÉÏËÑË÷Ò²±È½ÏÉÙ¼û¡£¶øÎÒÃÇÕæÊµµÄÏë·¨ÔÚÓÚ£¬ÎÒÃÇ ......
´ó¼ÒÓ¦¸Ã¶¼ä¯ÀÀ¹ýºÜ¶àflashÕûÕ¾Ô´Â룬flash½áºÏxml´ïµ½Ò»¸ö¶¯Ì¬ÐÞ¸ÄflashÊä³öÄÚÈݵÄЧ¹û£¬ÓÃflashÀ´ÌåÏÖÒ»¸öÍøÕ¾£¬²¢ÇÒÄܼòµ¥µÄ¶¯Ì¬¸üУ¬´ó¶¼ÕâЩԴÂëÊÇÀÏÍâ·Å³öÀ´µÄ£¬ÔÚÊäÈëÊä³ö·½Ã棬¼¸ºõ¶ÔÖÐÎͼ²»Ö§³Ö£¬ºÜ¶àºÜìŵÄЧ¹û
ÎÒÃÇÈÏʶ·½¿é×ÖµÄÈ˶¼Óò»ÁË£¨Í»È»¸ÐÎò£¬¼ÆËã»ú´øÀ´µÄ¿Æ¼¼¸ïÃü£¬ÎªÊ²Ã´²»»áÊÇÖйúÈËÄØ£¿¶øÊÇÖ»Ó ......