現在xml文件應用的方面特別的多.
我把以前寫過的乙個例子帖出來,以備以後使用.
第一部分:dom解析:
概述:dom解析將會把乙個完整的xml文件讀進來,生成乙個結構樹。這樣會要把xml文件全部都載入到內在中。所以解析起來的速度會要慢一些。
1、如何載入xml檔案:
//建立dom,載入xml文件
msxml::ixmldomdocumentptr p***manddoc;
p***manddoc.createinstance(__uuidof(msxml::domdocument));
p***manddoc->put_async(variant_false);
p***manddoc->put_validateonparse(variant_false);
p***manddoc->put_resolveexternals(variant_false);
p***manddoc->put_preservewhitespace(variant_true);
p***manddoc->load(file.getbuffer(0));
2、在xml文件中查詢指定的結點:
//找到
msxml::ixmldomnodeptr prootnode=p***manddoc->selectsinglenode("root/record");
if (prootnode==null)
3、得到xml文件中,結點的屬性
cstring strtemp;
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。
有幾個函式過載了之後,當找到了結點之後,就會**這一些函式。
利用MSXML解析XML文字 二
二 實現xml解析的說明 三 xml文件物件 xml dom 模型分析 xml dom物件提供了乙個標準的方法來操作儲存在xml文件中的資訊,dom應用程式設計介面 api 用來作為應用程式和xml文件之間的橋梁。dom可以認為是乙個標準的結構體系用來連線文件和應用程式 也可以是劇本語言 msxml...
MSXML生成以及解析XML檔案
由於最近工作用到xml解析,因此看了一些關於xml的知識,找了很多範例,不過並不是那麼有效或者說可以編譯的通過。因此自己便從乙份從網上拷貝過來的 進行了修改和嘗試,中間出現的問題修改,就有了下面的一篇文章,程式 直接可以拷過去執行 基本不需要什麼修改,如果出現一些問題,看程式開始出的一點關於引入af...
XML解析之 MSXML應用總結 概念篇
一 msxml版本說明 目前共有四種msxml版本,分別為msxml3 msxml4 msxml5和msxml6。由於在微軟的windows系統中,msxml主要是用來支援瀏覽器和office的,因此這些版本多與不同瀏覽器版本及office版本相關。微軟推出ie6時帶的是msxml3,因此一般在xp...