自己设计USB hub Windows下网络不稳定怎么办求指导

& & By Richard Anderson Introduction The Extensible Markup Language (XML) is one of those technologies that you just know you should start supporting in your applications sooner rather than later. Since its official ratification i……
声明:该文章系网友上传分享,此内容仅代表网友个人经验或观点,不代表本网站立场和观点;若未进行原创声明,则表明该文章系转载自互联网;若该文章内容涉嫌侵权,请及时向
论文写作技巧
上一篇:下一篇:
相关经验教程DotNet中使用xml相对比较轻松,在vc中操作xml,有些繁琐。最近在网络上得知CMarkup比较好用,于是试了下,还好,就把部分例子写出来。以后有时间的话,再写清楚点。
1. 生成UserInfo.xml
CMarkup&& &&
xml.SetDoc("&?xml&version=\"1.0\"&encoding=\"UTF-8\"?&\r\n");& &&
xml.AddElem("UserInfo");& &&
xml.IntoElem();& &&
xml.AddElem("UserID","luo");& &&
xml.AddElem("UserID","lin");& &&
xml.OutOfElem();& &&
xml.Save("UserInfo.xml");&&&
xml.SetDoc("&?xml version=\"1.0\" encoding=\"UTF-8\"?&\r\n");
xml.AddElem("UserInfo");
xml.IntoElem();
xml.AddElem("UserID","luo");
xml.AddElem("UserID","lin");
xml.OutOfElem();
xml.Save("UserInfo.xml");
2. 浏览特定元素
CMarkup&& &&
xml.Load("UserInfo.xml");& &&
BOOL&bFind&=&true;& &&
xml.ResetMainPos();& &&
while&(xml.FindChildElem("UserID");)& &&
&&&&&&&&CString&strTagName&=&_T("");& &&
&&&&&&&&CString&strData&=&_T("");& &&
&&&&&&&&strTagName&=&xml.GetChildTagName();& &&
&&&&&&&&strData&=&xml.GetChildData();& &&
&&&&&&&&TRACE("\n---tagName:%s,Data:%s--\n",strTagName,strData);& &&
---tagName:UserID,Data:luo--& &&
---tagName:UserID,Data:lin&&&&
//----查看所有UserID----
xml.Load("UserInfo.xml");
BOOL bFind =
xml.ResetMainPos();
while (xml.FindChildElem("UserID");)
//此时接点还是父接点
CString strTagName = _T("");
CString strData = _T("");
strTagName = xml.GetChildTagName();
strData = xml.GetChildData();
TRACE("\n---tagName:%s,Data:%s--\n",strTagName,strData);
/********************这样也可以******************
xml.Load("UserInfo.xml");
BOOL bFind =
xml.ResetMainPos();
while (xml.FindChildElem("UserID");)
xml.IntoElem();
CString strTagName = _T("");
CString strData = _T("");
strTagName = xml.GetTagName();
strData = xml.GetData();
TRACE("\n---tagName:%s,Data:%s--\n",strTagName,strData);
xml.OutOfElem();
/**************这样也可以**********************
xml.Load("UserInfo.xml");
BOOL bFind =
xml.ResetMainPos();
xml.FindElem();
//UserInfo
xml.IntoElem();
while (xml.FindElem("UserID");)
CString strTagName = _T("");
CString strData = _T("");
strTagName = xml.GetTagName();
strData = xml.GetData();
TRACE("\n---tagName:%s,Data:%s--\n",strTagName,strData);
//-------------结果----------
---tagName:UserID,Data:luo--
---tagName:UserID,Data:lin&
BOOL&bLoadXml&=&false;& &&
CMarkup&& &&
bLoadXml&=&xml.Load("UserInfo.xml");& &&
&&&&&&if&(bLoadXml)& &&
&&&&&&{& &&
&&&&&&&&&&&&&&CString&strUserID&=&_T("");& &&
&&&&&&&&&&&&&&xml.ResetMainPos();& &&
&&&&&&&&&&&&&&xml.FindElem();& &&
&&&&&&&&&&&&&&xml.IntoElem();& &&
&&&&&&&&&&&&&&while&(xml.FindElem("UserID"))& &&
&&&&&&&&&&&&&&{& &&
&&&&&&&&&&&&&&&&&&&&strUserID&=&xml.GetData();& &&
&&&&&&&&&&&&&&&&&&&&if&(strUserID=="luo")& &&
&&&&&&&&&&&&&&&&&&&&{& &&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&xml.SetData(CString("flypig")+strUserID);& &&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&xml.Save("UserInfo.xml");& &&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&break;& &&
&&&&&&&&&&&&&&&&&&&&}& &&
&&&&&&&&&&&&&&}& &&
&&&&&&}&&&
//--------把UserID为&luo&改为&flypigluo&-----------
BOOL bLoadXml =
bLoadXml = xml.Load("UserInfo.xml");
if (bLoadXml)
CString strUserID = _T("");
xml.ResetMainPos();
xml.FindElem();
xml.IntoElem();
while (xml.FindElem("UserID"))
strUserID = xml.GetData();
if (strUserID=="luo")
xml.SetData(CString("flypig")+strUserID);
xml.Save("UserInfo.xml");
4.1& 添在最后面(使用的是AddElem)
&&&&&&BOOL&bLoadXml&=&false;& &&
&&&&&&CMarkup&& &&
&&&&&&bLoadXml&=&xml.Load("UserInfo.xml");& &&
&&&&&&if&(bLoadXml)& &&
&&&&&&{& &&
&&&&&&&&&&&&&&xml.ResetMainPos();& &&
&&&&&&&&&&&&&&xml.FindElem();& &&
&&&&&&&&&&&&&&xml.IntoElem();& &&
&&&&&&&&&&&&&&xml.AddElem("UserID","luoluo");& &&
&&&&&&&&&&&&&&xml.OutOfElem();& &&
&&&&&&&&&&&&&&xml.Save("UserInfo.xml");& &&
&&&&&&}& &&
&?xml&version="1.0"&encoding="UTF-8"&?&& &&
&UserInfo&& &&
&&&UserID&luo&/UserID&& &&
&&&UserID&lin&/UserID&& &&
&&&/UserInfo&& &&
&?xml&version="1.0"&encoding="UTF-8"&?&& &&
&UserInfo&& &&
&&&UserID&luo&/UserID&& &&
&&&UserID&lin&/UserID&& &&
&&&UserID&luoluo&/UserID&& &&
&&&/UserInfo&&&&
//加在最后面
BOOL bLoadXml =
bLoadXml = xml.Load("UserInfo.xml");
if (bLoadXml)
xml.ResetMainPos();
xml.FindElem();
xml.IntoElem();
xml.AddElem("UserID","luoluo");
xml.OutOfElem();
xml.Save("UserInfo.xml");
//--------原来为------
&?xml version="1.0" encoding="UTF-8" ?&
&UserInfo&
&UserID&luo&/UserID&
&UserID&lin&/UserID&
&/UserInfo&
//---------添加后为-------------
&?xml version="1.0" encoding="UTF-8" ?&
&UserInfo&
&UserID&luo&/UserID&
&UserID&lin&/UserID&
&UserID&luoluo&/UserID&
&/UserInfo&
4.2& 加在最前面(使用InsertElem)
BOOL&bLoadXml&=&false;& &&
CMarkup&& &&
bLoadXml&=&xml.Load("UserInfo.xml");& &&
if&(bLoadXml)& &&
&&&&&&xml.ResetMainPos();& &&
&&&&&&xml.FindElem();& &&
&&&&&&xml.IntoElem();& &&
&&&&&&xml.InsertElem("UserID","AddUserIDHead");& &&
&&&&&&xml.OutOfElem();& &&
&&&&&&xml.Save("UserInfo.xml");& &&
&?xml&version="1.0"&encoding="UTF-8"&?&& &&
&UserInfo&& &&
&&&UserID&luo&/UserID&& &&
&&&UserID&lin&/UserID&& &&
&&&/UserInfo&& &&
&?xml&version="1.0"&encoding="UTF-8"&?&& &&
&UserInfo&& &&
&&&UserID&AddUserIDHead&/UserID&& &&
&&&UserID&luo&/UserID&& &&
&&&UserID&lin&/UserID&& &&
&&&/UserInfo&&&&
BOOL bLoadXml =
bLoadXml = xml.Load("UserInfo.xml");
if (bLoadXml)
xml.ResetMainPos();
xml.FindElem();
xml.IntoElem();
xml.InsertElem("UserID","AddUserIDHead");
xml.OutOfElem();
xml.Save("UserInfo.xml");
//----原来为&
&?xml version="1.0" encoding="UTF-8" ?&
&UserInfo&
&UserID&luo&/UserID&
&UserID&lin&/UserID&
&/UserInfo&
//------修改后-----
&?xml version="1.0" encoding="UTF-8" ?&
&UserInfo&
&UserID&AddUserIDHead&/UserID&
&UserID&luo&/UserID&
&UserID&lin&/UserID&
&/UserInfo&
CMarkup&& &&
xml.Load("UserInfo.xml");& &&
BOOL&bFind&=&true;& &&
xml.ResetMainPos();&&&&&& &&
while&(bFind)& &&
&&&&&&bFind&=&xml.FindChildElem("UserID");& &&
&&&&&&if&(bFind)& &&
&&&&&&{& &&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&CString&strData&=&_T("");& &&
&&&&&&&&&&&&&&strData&=&xml.GetChildData();& &&
&&&&&&&&&&&&&&if&(strData=="luo")& &&
&&&&&&&&&&&&&&{& &&
&&&&&&&&&&&&&&&&&&&&xml.RemoveChildElem();& &&
&&&&&&&&&&&&&&&&&&&&xml.Save("UserInfo.xml");& &&
&&&&&&&&&&&&&&&&&&&&break;& &&
&&&&&&&&&&&&&&}& &&
&&&&&&}& &&
xml.Load("UserInfo.xml");
BOOL bFind =
xml.ResetMainPos();
while (bFind)
bFind = xml.FindChildElem("UserID");
if (bFind)
//此时接点还是父接点
CString strData = _T("");
strData = xml.GetChildData();
if (strData=="luo")
xml.RemoveChildElem();
xml.Save("UserInfo.xml");
见第二点浏览。类似上面的例子里面没有属性这些东西,下面的一个例子是有属性的
&?xml&version="1.0"&encoding="UTF-8"&?&& &&
&UserInfo&& &&
&&&User&UserID="UserID00"&UserPwd="UserPwd00"&UserLevel="158"&/&& &&
&&&User&UserID="UserID01"&UserPwd="UserPwd01"&UserLevel="162"&/&& &&
&&&User&UserID="UserID02"&UserPwd="UserPwd02"&UserLevel="165"&/&& &&
&&&User&UserID="UserID03"&UserPwd="UserPwd03"&UserLevel="168"&/&& &&
&&&User&UserID="UserID04"&UserPwd="UserPwd04"&UserLevel="171"&/&& &&
&&&User&UserID="UserID05"&UserPwd="UserPwd05"&UserLevel="175"&/&& &&
&&&User&UserID="UserID06"&UserPwd="UserPwd06"&UserLevel="178"&/&& &&
&&&User&UserID="UserID07"&UserPwd="UserPwd07"&UserLevel="181"&/&& &&
&&&User&UserID="UserID08"&UserPwd="UserPwd08"&UserLevel="184"&/&& &&
&&&User&UserID="UserID09"&UserPwd="UserPwd09"&UserLevel="188"&/&& &&
&&&/UserInfo&&&&
//UserInfo1.xml
&?xml version="1.0" encoding="UTF-8" ?&
&UserInfo&
&User UserID="UserID00" UserPwd="UserPwd00" UserLevel="158" /&
&User UserID="UserID01" UserPwd="UserPwd01" UserLevel="162" /&
&User UserID="UserID02" UserPwd="UserPwd02" UserLevel="165" /&
&User UserID="UserID03" UserPwd="UserPwd03" UserLevel="168" /&
&User UserID="UserID04" UserPwd="UserPwd04" UserLevel="171" /&
&User UserID="UserID05" UserPwd="UserPwd05" UserLevel="175" /&
&User UserID="UserID06" UserPwd="UserPwd06" UserLevel="178" /&
&User UserID="UserID07" UserPwd="UserPwd07" UserLevel="181" /&
&User UserID="UserID08" UserPwd="UserPwd08" UserLevel="184" /&
&User UserID="UserID09" UserPwd="UserPwd09" UserLevel="188" /&
&/UserInfo&
CString&strID&=&_T("");& &&
&&&&&&CString&strPwd&=&_T("");& &&
&&&&&&CMarkup&& &&
&&&&&&xml.SetDoc("&?xml&version=\"1.0\"&encoding=\"UTF-8\"?&");& &&
&&&&&&xml.AddElem("UserInfo");& &&
&&&&&&xml.IntoElem();& &&
&&&&&&for&(int&i=0;&i&10;&i++)& &&
&&&&&&{& &&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&srand(UINT(time(NULL)+i));& &&
&&&&&&&&&&&&&&int&nLevel&=&rand()%256;& &&
&&&&&&&&&&&&&&strID.Format("UserID%02d",i);& &&
&&&&&&&&&&&&&&strPwd.Format("UserPwd%02d",i);& &&
&&&&&&&&&&&&&&xml.AddElem("User");& &&
&&&&&&&&&&&&&&xml.AddAttrib("UserID",strID);& &&
&&&&&&&&&&&&&&xml.AddAttrib("UserPwd",strPwd);& &&
&&&&&&&&&&&&&&xml.AddAttrib("UserLevel",nLevel);& &&
&&&&&&}& &&
&&&&&&xml.OutOfElem();& &&
&&&&&&xml.Save("UserInfo1.xml");&&&
CString strID = _T("");
CString strPwd = _T("");
xml.SetDoc("&?xml version=\"1.0\" encoding=\"UTF-8\"?&");
xml.AddElem("UserInfo");
xml.IntoElem();
for (int i=0; i&10; i++)
//产生一个随机数,作为权限
srand(UINT(time(NULL)+i));
int nLevel = rand()%256;
strID.Format("UserID%02d",i);
strPwd.Format("UserPwd%02d",i);
xml.AddElem("User");
xml.AddAttrib("UserID",strID);
xml.AddAttrib("UserPwd",strPwd);
xml.AddAttrib("UserLevel",nLevel);
xml.OutOfElem();
xml.Save("UserInfo1.xml");
CMarkup&& &&
BOOL&bLoad&=&false;& &&
BOOL&bFind&=&false;& &&
bLoad&=&xml.Load("UserInfo1.xml");& &&
&&&&&&if&(bLoad)& &&
&&&&&&{& &&
&&&&&&&&&&&&&&CString&strID;& &&
&&&&&&&&&&&&&&CString&strP& &&
&&&&&&&&&&&&&&xml.ResetMainPos();& &&
&&&&&&&&&&&&&&xml.FindElem();&&&&&&
&&&&&&&&&&&&&&while&(xml.FindChildElem("User"))& &&
&&&&&&&&&&&&&&{& &&
&&&&&&&&&&&&&&&&&&&&strID&=&xml.GetChildAttrib("UserID");& &&
&&&&&&&&&&&&&&&&&&&&strPwd&=&xml.GetChildAttrib("UserPwd");& &&
&&&&&&&&&&&&&&&&&&&&TRACE("\n----id:%s,pwd:%s-------\n",strID,strPwd);& &&
&&&&&&&&&&&&&&&&&&&&if&(strID=="UserID00"&&strPwd=="UserPwd00")& &&
&&&&&&&&&&&&&&&&&&&&{& &&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&bFind&=&true;& &&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&break;& &&
&&&&&&&&&&&&&&&&&&&&}& &&
&&&&&&&&&&&&&&}& &&
&&&&&&}& &&
&&&&&&if&(bFind)& &&
&&&&&&{& &&
&&&&&&&&&&&&&&TRACE("\n----&find------\n");& &&
&&&&&&}& &&
&&&&&&else& &&
&&&&&&{& &&
&&&&&&&&&&&&&&TRACE("\n----no&find------\n");& &&
&&&&&&}&&&
BOOL bLoad =
BOOL bFind =
bLoad = xml.Load("UserInfo1.xml");
if (bLoad)
CString strID;
CString strP
xml.ResetMainPos();
xml.FindElem();
//UserInfo
while (xml.FindChildElem("User"))
strID = xml.GetChildAttrib("UserID");
strPwd = xml.GetChildAttrib("UserPwd");
TRACE("\n----id:%s,pwd:%s-------\n",strID,strPwd);
if (strID=="UserID00"&&strPwd=="UserPwd00")
if (bFind)
TRACE("\n---- find------\n");
TRACE("\n----no find------\n");
CMarkup&& &&
&&&&&&BOOL&bLoad&=&false;& &&
&&&&&&BOOL&bFind&=&false;& &&
&&&&&&bLoad&=&xml.Load("UserInfo1.xml");& &&
&&&&&&if&(bLoad)& &&
&&&&&&{& &&
&&&&&&&&&&&&&&CString&strID;& &&
&&&&&&&&&&&&&&CString&strP& &&
&&&&&&&&&&&&&&xml.ResetMainPos();& &&
&&&&&&&&&&&&&&xml.FindElem();&&&&&&
&&&&&&&&&&&&&&while&(xml.FindChildElem("User"))& &&
&&&&&&&&&&&&&&{& &&
&&&&&&&&&&&&&&&&&&&&strID&=&xml.GetChildAttrib("UserID");& &&
&&&&&&&&&&&&&&&&&&&&strPwd&=&xml.GetChildAttrib("UserPwd");& &&
&&&&&&&&&&&&&&&&&&&&TRACE("\n----id:%s,pwd:%s-------\n",strID,strPwd);& &&
&&&&&&&&&&&&&&&&&&&&if&(strID=="UserID00"&&strPwd=="UserPwd00")& &&
&&&&&&&&&&&&&&&&&&&&{& &&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&bFind&=&true;& &&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&xml.SetChildAttrib("UserID",strID+CString("Modify"));& &&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&xml.Save("UserInfo1.xml");& &&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&break;& &&
&&&&&&&&&&&&&&&&&&&&}& &&
&&&&&&&&&&&&&&}& &&
&&&&&&}& &&
&&&&&&if&(bFind)& &&
&&&&&&{& &&
&&&&&&&&&&&&&&TRACE("\n----&find------\n");& &&
&&&&&&}& &&
&&&&&&else& &&
&&&&&&{& &&
&&&&&&&&&&&&&&TRACE("\n----no&find------\n");& &&
&&&&&&}&&&
&?xml version="1.0"?&
&BitComet Author="RnySmile" Version="0.1"&
& & & &Settings&
& & & & & & & &LastSaveLocation&E:\电子书&/LastSaveLocation&
& & & & & & & &ListenPort&8497&/ListenPort&
& & & & & & & &GlobalMaxUploadRate&3072&/GlobalMaxUploadRate&
& & & & & & & &LastAdCacheClearDate&13104&/LastAdCacheClearDate&
& & & & & & & &LastTrackerKey&16547&/LastTrackerKey&
& & & & & & & &TotalUpload&303008&/TotalUpload&
& & & & & & & &TotalDownload&1180107&/TotalDownload&
& & & & & & & &LastExitTime&&/LastExitTime&
& & & &/Settings&
&/BitComet&
代码如下:
Code#include&"stdafx.h"&#include&&iostream&&using&namespace&&#include&&msxml.h&&#include&&atlstr.h&&#import&"msxml.dll"&raw_interfaces_only&int&_tmain(int&argc,&_TCHAR*&argv[])&{&&&&&::CoInitialize(NULL);&&&&&CComPtr&MSXML::IXMLDOMDocument&&spD&&&&&HRESULT&hr&=&spDoc.CoCreateInstance(__uuidof(MSXML::DOMDocument));&&&&//创建文档对象&&&&&VARIANT_BOOL&bF&&&&&hr&=&spDoc-&load(CComVariant(L"BitComet.xml"),&&bFlag);&&&&&&&&&&&&&&//load&xml文件&&&&&CComPtr&MSXML::IXMLDOMElement&&spE&&&&&hr&=&spDoc-&get_documentElement(&spElement);&&//获取根结点&&&&&CComBSTR&strTagN&&&&&hr&=&spElement-&get_tagName(&strTagName);&&&&&cout&&&&"------TagName------"&&&&&&&&&cout&&&&CString(strTagName)&&&&&&&&&CComPtr&MSXML::IXMLDOMNodeList&&spNodeL&&&&&hr&=&spElement-&get_childNodes(&spNodeList);&&//获取子结点列表&&&&&long&lC&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&hr&=&spNodeList-&get_length(&lCount);&&&&&for&(long&i=0;&i&lC&++i)&&&&&{&&&&&&&&&CComVariant&varNodeV&&&&&&&&&CComPtr&MSXML::IXMLDOMNode&&spN&&&&&&&&&MSXML::DOMNodeType&NodeT&&&&&&&&&CComPtr&MSXML::IXMLDOMNodeList&&spChildNodeL&&&&&&&&&hr&=&spNodeList-&get_item(i,&&spNode);&&&&&&&&//获取结点&&&&&&&&&hr&=&spNode-&get_nodeType(&NodeType);&&&&//获取结点信息的类型&&&&&&&&&if&(NODE_ELEMENT&==&NodeType)&&&&&&&&&{&&&&&&&&&&&&&&&hr&=&spNode-&get_childNodes(&spChildNodeList);&&&&&&&&&&&&&&&long&childL&&&&&&&&&&&&&&&hr&=&spChildNodeList-&get_length(&childLen);&&&&&&&&&&&&&&&cout&&&&"------NodeList------"&&&&&&&&&&&&&&&&&&&for&(int&j=0;&j&childL&++j)&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&CComPtr&MSXML::IXMLDOMNode&&spChildN&&&&&&&&&&&&&&&&&&&CComBSTR&&&&&&&&&&&&&&&&&&&&hr&=&spChildNodeList-&get_item(j,&&spChildNode);&&&&&&&&&&&&&&&&&&&hr&=&spChildNode-&get_nodeName(&value);&&&&&&&&&&&&//获取结点名字&&&&&&&&&&&&&&&&&&&cout&&&&CString(value)&&&&&&&&&&&&&&&&&&&&&&&hr&=&spChildNode-&get_text(&value);&&&&&&&&&&&&&&&&//获取结点的值&&&&&&&&&&&&&&&&&&&cout&&&&CString(value)&&&&endl&&&&&&&&&&&&&&&&&&&&&&&spChildNode.Release();&&&&&&&&&&&&&&&}&&&&&&&&&}&&&&&&&&&spNode.Release();&&&&&&&&&spChildNodeList.Release();&&&&&}&&&&&spNodeList.Release();&&&&&spElement.Release();&&&&&spDoc.Release();&&&&&::CoUninitialize();&&&&&return&0;&}
VC使用MSXML解析XML文档
第一部分:DOM解析:
&&&&& 概述:DOM解析将会把一个完整的XML文档读进来,生成一个结构树。这样会要把XML文档全部都加载到内在中。所以解析起来的速度会要慢一些。
&&& 1、如何加载xml文件:
&&&&&&&& //创建DOM,加载XML文档&&&&&&&& MSXML::IXMLDOMDocumentPtr pCommandD&&&&&&&& 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)&&&& {&&&&&&&&&&&&&& }
&&& 3、得到XML文档中,结点的属性
&&&&&&& CString strT&&&& MSXML::IXMLDOMNamedNodeMapPtr pAttrs = NULL;&&&& pRootNode-&get_attributes(&pAttrs);&&&& if (pAttrs==NULL)&&&& {&&&&&&&&&&&&& }&&&& 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);&&
第二部分、如何使用SAX解析
&&&&&&& 概述:SAX使用的是加载式的,将会把XML文档分断,加载到内存中。使用事件通知的方式,来表示找到结点。好像没有写文档的能力吧。它的速度要比DOM快不少。
&&&&&& 使用SAX的时候,就需要重载MSXML4.0中的一个接口ISAXContentHandler。
&&&&& 有几个函数重载了之后,当找到了结点之后,就会回调这一些函数。  
对于这一种SAX解析的模式有一些不太了解如何应用。只是感觉这种方式可能不太好用于那种
对结构很重要的xml文档的解析。
阅读(...) 评论()| Copyright &
. All Rights Reserved .}

我要回帖

更多关于 英雄联盟fps不稳定 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信