/*
* XMLTool.cpp ÅäÖÃÎļþ½âÎö¶¯Ì¬¿â×ÊÔ´Îļþ
* Ö÷ÒªÊä³öº¯Êý½Ó¿Ú·Ö±ðʵÏÖ¶ÔÅäÖÃÎļþµÄ¶ÁÈ¡ºÍдÈ룬Õë¶Ô½á¹û¼¯µÄ¸´ÖÆÇå¿Õ£¬ºÍÁ½¸ö×Ö·û´®´¦Àíº¯Êý
* ¶ÁÈ¡ÅäÖÃÎļþ½Ó¿Ú £ºint ReadXMLFile(XML_Node_Vector *XmlNodeVector, string filepath);
* дÈëÅäÖÃÎļþ½Ó¿Ú £ºint WriteXMLFile(XML_Node_Vector *XmlNodeVector, string filepath,bool is_addend = true);
* ¸´Öƽṹ¼¯½Ó¿Ú £ºbool VecDataCopy(XML_Node_Vector *XmlNodeVectorDest,const XML_Node_Vector *XmlNodeVectorSource);
* Çå¿Õ½á¹¹¼¯½Ó¿Ú £ºbool VecDataClean(XML_Node_Vector *XmlNodeVector);
* ×Ö·û´®°²È«¿½±´½Ó¿Ú £ºbool strncpy_ex(char *pStrDest,const char *pStrSource,int nDestSize);
* ×Ö·û´®°²È«´¦Àí½Ó¿Ú £ºbool printf_ex(char* szBuf,int nDestSize,char *szFormat, ...);
*
* ÅäÖÃÎļþÐÅÏ¢½á¹¹´ó¸ÅÈçÏ עÒâ <> ·ûºÅ°üÀ¨ÆäÖеÄ×Ö·û´®½öΪÏÖÔÚ˵ÃûÐÅÏ¢
& ......
/*
* XMLTool.cpp ÅäÖÃÎļþ½âÎö¶¯Ì¬¿â×ÊÔ´Îļþ
* Ö÷ÒªÊä³öº¯Êý½Ó¿Ú·Ö±ðʵÏÖ¶ÔÅäÖÃÎļþµÄ¶ÁÈ¡ºÍдÈ룬Õë¶Ô½á¹û¼¯µÄ¸´ÖÆÇå¿Õ£¬ºÍÁ½¸ö×Ö·û´®´¦Àíº¯Êý
* ¶ÁÈ¡ÅäÖÃÎļþ½Ó¿Ú £ºint ReadXMLFile(XML_Node_Vector *XmlNodeVector, string filepath);
* дÈëÅäÖÃÎļþ½Ó¿Ú £ºint WriteXMLFile(XML_Node_Vector *XmlNodeVector, string filepath,bool is_addend = true);
* ¸´Öƽṹ¼¯½Ó¿Ú £ºbool VecDataCopy(XML_Node_Vector *XmlNodeVectorDest,const XML_Node_Vector *XmlNodeVectorSource);
* Çå¿Õ½á¹¹¼¯½Ó¿Ú £ºbool VecDataClean(XML_Node_Vector *XmlNodeVector);
* ×Ö·û´®°²È«¿½±´½Ó¿Ú £ºbool strncpy_ex(char *pStrDest,const char *pStrSource,int nDestSize);
* ×Ö·û´®°²È«´¦Àí½Ó¿Ú £ºbool printf_ex(char* szBuf,int nDestSize,char *szFormat, ...);
*
* ÅäÖÃÎļþÐÅÏ¢½á¹¹´ó¸ÅÈçÏ עÒâ <> ·ûºÅ°üÀ¨ÆäÖеÄ×Ö·û´®½öΪÏÖÔÚ˵ÃûÐÅÏ¢
& ......
дUnmanaged CodeÔÚ.NETʱ´ú³ÉΪһÖֺܱ¯²ÒµÄÊ£¬µ±ÄãÐèÒª´¦ÀíXMLÎļþʱ£¬ÕâÖָоõ»á±äµÃÓÈÆäÇ¿ÁÒ¡£FCLÖеÄSystem.XML¶à¼òµ¥°¡£¬Á¬Steve Ballmer¶¼ÖªµÀÔõôÓá£
ÊÂÇé²»»á×ÜÊÇÄÇôÀíÏëµÄ£¬¼ÙÈçÄãÒªÔÚC/C++³ÌÐòÀï´¦ÀíXMLÔõô°ìÄØ£¿
Ñ¡ÔñÒ»£ºÊÐÃæÉϵÄXML lib»¹ÊÇÓм¸¸öµÄ£¬×îÓÐÃûµÄµ±È»ÊÇlibXML¡£ÎÒÒ»ÄêÇ°Óùý£¬ºÜ²»´í£¬ÎÒ»¹ÌØÒâдÁËÒ»·Ý¼òÃ÷½Ì³Ì£¬ºóÀ´²»Öª¸éÄĶùÁË¡£
Ñ¡Ôñ¶þ£ºMSµÄMSXML£¬ÎÒÒª½éÉܵľÍÊÇÕâ¸ö¡£
ÏÈ˵һÏÂÔÚMSDNÄÄÀïÕÒÎĵµ°É£¬ÍùÏ¿´µÄʱºòÒ²ºÃÓиö²Î¿¼£ºÔÚIndexÀï´ò£ºWindows Media Services 9 Series SDK=>Programming Reference=>Programming Reference (C++)=>XML DOM Interfaces (C++)¡£Ê²Ã´£¿Windows Media£¿ºÇºÇ£¬²»´í£¬ÎÒ¾õµÃÕâ¸öguide·´¶øÊÇ×îÇå³þµÄ£¬ÄãÖ±½ÓÕÒMSXML£¬µÃµ½µÄ½á¹û£¬ÎÒ¾õµÃ»¹Ã»Õâ¸öºÃ¡£
ÔÚC³ÌÐòÀïµ÷ÓÃMSXML»ù±¾¾ÍÊÇÒ»¶ÑCOM½Ó¿Ú£¬²»¹ýÔÚVisual StudioÀï²Ù×÷ÏÈÒª×öµã¼òµ¥µÄÉèÖãº
ÔÚÄãµÄProjectÀïAdd References=>COM±êÇ©=>Microsoft XML v4.0£¬5.0ÆäʵҲÓÐÁË£¬µ«ÒòΪÊǺÍOfficeÒ»Æð·¢²¼µÄ£¬¾õµÃÓеã¹Ö£¬²»ÏëÓ㬷´ÕýҲδ±ØÓÃʲôºÜ¹ÖÒìµÄ¹¦ÄÜ£¬4.0¿ÉÒÔÁË¡£
È»ºóÔÚ¼ÓÈëÕâÁ½ÐУº
#include <msXML2.h>
#import &l ......
дUnmanaged CodeÔÚ.NETʱ´ú³ÉΪһÖֺܱ¯²ÒµÄÊ£¬µ±ÄãÐèÒª´¦ÀíXMLÎļþʱ£¬ÕâÖָоõ»á±äµÃÓÈÆäÇ¿ÁÒ¡£FCLÖеÄSystem.XML¶à¼òµ¥°¡£¬Á¬Steve Ballmer¶¼ÖªµÀÔõôÓá£
ÊÂÇé²»»á×ÜÊÇÄÇôÀíÏëµÄ£¬¼ÙÈçÄãÒªÔÚC/C++³ÌÐòÀï´¦ÀíXMLÔõô°ìÄØ£¿
Ñ¡ÔñÒ»£ºÊÐÃæÉϵÄXML lib»¹ÊÇÓм¸¸öµÄ£¬×îÓÐÃûµÄµ±È»ÊÇlibXML¡£ÎÒÒ»ÄêÇ°Óùý£¬ºÜ²»´í£¬ÎÒ»¹ÌØÒâдÁËÒ»·Ý¼òÃ÷½Ì³Ì£¬ºóÀ´²»Öª¸éÄĶùÁË¡£
Ñ¡Ôñ¶þ£ºMSµÄMSXML£¬ÎÒÒª½éÉܵľÍÊÇÕâ¸ö¡£
ÏÈ˵һÏÂÔÚMSDNÄÄÀïÕÒÎĵµ°É£¬ÍùÏ¿´µÄʱºòÒ²ºÃÓиö²Î¿¼£ºÔÚIndexÀï´ò£ºWindows Media Services 9 Series SDK=>Programming Reference=>Programming Reference (C++)=>XML DOM Interfaces (C++)¡£Ê²Ã´£¿Windows Media£¿ºÇºÇ£¬²»´í£¬ÎÒ¾õµÃÕâ¸öguide·´¶øÊÇ×îÇå³þµÄ£¬ÄãÖ±½ÓÕÒMSXML£¬µÃµ½µÄ½á¹û£¬ÎÒ¾õµÃ»¹Ã»Õâ¸öºÃ¡£
ÔÚC³ÌÐòÀïµ÷ÓÃMSXML»ù±¾¾ÍÊÇÒ»¶ÑCOM½Ó¿Ú£¬²»¹ýÔÚVisual StudioÀï²Ù×÷ÏÈÒª×öµã¼òµ¥µÄÉèÖãº
ÔÚÄãµÄProjectÀïAdd References=>COM±êÇ©=>Microsoft XML v4.0£¬5.0ÆäʵҲÓÐÁË£¬µ«ÒòΪÊǺÍOfficeÒ»Æð·¢²¼µÄ£¬¾õµÃÓеã¹Ö£¬²»ÏëÓ㬷´ÕýҲδ±ØÓÃʲôºÜ¹ÖÒìµÄ¹¦ÄÜ£¬4.0¿ÉÒÔÁË¡£
È»ºóÔÚ¼ÓÈëÕâÁ½ÐУº
#include <msXML2.h>
#import &l ......
×¼±¸
¿ª·¢¹¤¾ß£ºVS2005£¬
Ç°Ì᣺°²×°msxml6½âÎöÆ÷£¬msÍøÕ¾¿ÉÏÂÔØ
ͨ¹ýÏòµ¼´´½¨VC++ MFC ¹¤³Ì£¬»ùÓÚ¶Ô»°¿ò
Ìí¼ÓÒýÓÃ:
//ÔÚStdAfx.hÖÐÒýÈ붯̬Á´½Ó¿â MSXML.DLL(C:\windows\system32\msxml6.dll)
#import <msxml6.dll>
±à¼×ÊÔ´£¬Ìí¼Ó¿Ø¼þ
ÔÚbookid¶ÔÓ¦µÄÎı¾¿òÓÒ¼ü£¬Ìí¼Ó±äÁ¿°ó¶¨£¨ÈçÏÂͼ£¬°ó¶¨¿Ø¼þÖµ£¬±äÁ¿ÃûΪ:m_strId)
¼ÌÐø¸øÁíÍâÁ½¸öÎı¾¿òÒ²°ó¶¨±äÁ¿£¬·Ö±ðΪ£ºm_strAuthor£¬m_strTitle
¶¨ÒåÈ«¾Ö±äÁ¿
MSXML2::IXMLDOMDocumentPtr pDoc;//xmlÎĵµÖ¸Õë
long bookIndex,bookCount ;//xmlÄÚÈÝÖУ¬µ±Ç°Ë÷ÒýÓëbookÊýÁ¿£¬ÓÃÓÚÏÔʾ”ÉÏÒ»Ìõ¼Ç¼”ºÍ”ÏÂÒ»Ìõ¼Ç¼”
_bstr_t xmlfile;//xmlÎĵµÂ·¾¶
×¢²áʼþ
Ë«»÷¸÷¸ö°´¼ü£¬Ìí¼Óʼþ°ó¶¨
дÈëxml·½·¨£º
void CMFC2005Dlg::OnBnClickedButtonWritexml()
{
UpdateData();
if (pDoc!=NULL) pDoc=NULL;
//´´½¨DOMDocument¶ÔÏó
HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument60));
if(!SUCCEEDED(hr))
{
MessageBox( _T("ÎÞ·¨´´½¨DOMDocument¶ÔÏó£¬Çë¼ì²éÊÇ·ñ°²×°ÁËMS XML Parser ÔËÐпâ!"));
return ;
}
......
µÚÒ»ÖÖ·½Ê½--ʹÓÃMSXML2.DOMDOCUMENT.4.0
´´½¨xmldoc¶ÔÏ󣬲¢×°ÔØÒ»¸öxml
Set xmldoc = CreateObject("MSXML2.DOMDOCUMENT.4.0")
xmldoc.loadXML ("Ò»¸ö¾ßÌåµÄXMLʵÌå")
Ñ¡ÔñÐèҪɸѡµÄ½áµã
Set nodeList = xmldoc.selectNodes("//*[count(ancestor::*)= 2]") '¸ù½ÚµãµÄµÚ¶þ´úºó´ú
Set nodeList = xmldoc.selectNodes("//*") 'ËùÓнáµã
......
XML(eXtensible Markup Language)ÊÇÍòάÍøÁªÃË(World Wide Web Consortium W3C)¶¨ÒåµÄÒ»ÖÖ¿ÉÀ©Õ¹±êÖ¾ÓïÑÔ¡£
¿ÉÀ©Õ¹ÐÔÖ¸ÔÊÐíÓû§°´ÕÕXML¹æÔò×Ô¶¨Òå±ê¼Ç(tags ±êÇ©)¡£
Ç¿ÏÇáËɱí´ï¶à²ã½á¹¹µÄÊý¾Ý£»¿ÉÀ©Õ¹¡£
Óŵ㣺ƽ̨Î޹أ¬ÓïÑÔÎ޹ء£Éè¼ÆÄ¿±êÊÇÃèÊöÊý¾Ý²¢¼¯ÖÐÓÚÊý¾ÝµÄÄÚÈÝ£¬ÓëÏÔʾ·ÖÀë¡£
ÌáÐÑ£º²»ÄÜÓÃXMLÀ´Ö±½ÓдÍøÒ³¡£¼´±ãÊÇ°üº¬ÁËXMLÊý¾Ý£¬ÒÀȻҪת»»³ÉHTML¸ñʽ²ÅÄÜÔÚä¯ÀÀÆ÷ÉÏÏÔʾ¡£
Óï·¨¹æÔò£º
XMLÎļþÓÐÇÒ½öÓÐÒ»¸ö¸ù±ê¼Ç£¬ÆäËû±ê¼Ç±ØÐë·â×°ÔÚ¸ù±ê¼ÇÖУ¬ÎļþµÄ±ê¼Ç±ØÐëÐγÉÊ÷×´½á¹¹¡£
´óСдÃô¸Ð¡£
±ê¼ÇµÄÊôÐÔ±ØÐëÓÃ""»ò''À¨ÆðÀ´¡£
XMLϸ½Ú£º
Ò»¡¢ ÉùÃ÷
´ó¶àÊýXMLÎĵµÒÔXMLÉùÃ÷×÷Ϊ¿ªÊ¼£¬ËüÏò½âÎöÆ÷ÌṩÁ˹ØÓÚÎĵµµÄ»ù±¾ÐÅÏ¢¡£
½¨ÒéʹÓÃXMLÉùÃ÷£¬µ«Ëü²»ÊDZØÐèµÄ¡£Èç¹ûÓеĻ°£¬ÄÇôËüÒ»¶¨ÊÇÎĵµµÄµÚÒ»ÐÐÄÚÈÝ¡£
È磺<?xml version="1.0" encoding="UTF-8" standalone="no"?>
ÉùÃ÷×î¶à¿ÉÒÔ°üº¬Èý¸öÃû³Æ-Öµ¶Ô£¨Ðí¶àÈ˳ÆË ......
ʹÓÃSAX½âÎöºÍDOM½âÎöµÄʵÀý
ÊÕ²Ø
document.body.oncopy = function() {
if (window.clipboardData) {
setTimeout(function() {
var text = clipboardData.getData("text");
if (text && text.length > 300) {
text = text + "\r\n\n±¾ÎÄÀ´×ÔCSDN²©¿Í£¬×ªÔØÇë±êÃ÷³ö´¦£º" + location.href;
clipboardData.setData("text", text);
}
}, 100);
}
}
DOM½âÎö
private
static
void
dom()
throws
ParserConfigurationException, SAXEx ......