日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

VC读写XML文件

發(fā)布時(shí)間:2025/5/22 asp.net 128 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VC读写XML文件 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

先安裝控件msxml.msi

編碼:

MSXML2::IXMLDOMDocumentPtr pDoc;?
MSXML2::IXMLDOMElementPtr? xmlRoot ;?
?// 創(chuàng)建DOMDocument對(duì)象?
?HRESULT hr? =? pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40));?
?if ( ! SUCCEEDED(hr))?
? {??
?MessageBox( " 無法創(chuàng)建DOMDocument對(duì)象,請(qǐng)檢查是否安裝了MS XML Parser 運(yùn)行庫! " );?
? return? ;
}??
?// 根節(jié)點(diǎn)的名稱為Book
?// 創(chuàng)建元素并添加到文檔中
?
?xmlRoot = pDoc -> createElement((_bstr_t) " Book " );
?// 設(shè)置屬性?
?xmlRoot -> setAttribute( " id " ,( const?? char?? * )m_strId);
pDoc -> appendChild(xmlRoot);
MSXML2::IXMLDOMElementPtr pNode;
?// 添加“author”元素?
?pNode = pDoc -> createElement((_bstr_t) " Author " );
pNode -> Puttext((_bstr_t)( const?? char?? * )m_strAuthor);
xmlRoot -> appendChild(pNode);
?// 添加“Title”元素?
?pNode = pDoc -> createElement( " Title " );
pNode -> Puttext(( const?? char?? * )m_strTitle);
xmlRoot -> appendChild(pNode);
?// 保存到文件?
?// 如果不存在就建立,存在就覆蓋
???
?pDoc -> save( " d://he.xml " );

------------------------------------------------------------------------------------------------------------------------------------------------

MSXML2::IXMLDOMDocumentPtr pDoc;
HRESULT hr;
hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40));
?if (FAILED(hr))
{??
? MessageBox( " 無法創(chuàng)建DOMDocument對(duì)象,請(qǐng)檢查是否安裝了MS XML Parser 運(yùn)行庫! " );?
? return? ;
}??
?// 加載文件???
?pDoc -> load( " d://he.xml " );?
MSXML2::IXMLDOMNodePtr? pNode;
?// 在樹中查找名為Book的節(jié)點(diǎn)," // "表示在任意一層查找???
?pNode = pDoc -> selectSingleNode( " //Book " );
MSXML2::DOMNodeType nodeType;?
?// 得到節(jié)點(diǎn)類型???
?pNode -> get_nodeType( & nodeType);?
?// 節(jié)點(diǎn)名稱???
?CString strName;
strName = ( char?? * )pNode -> GetnodeName();
?// 節(jié)點(diǎn)屬性,放在鏈表中???
?MSXML2::IXMLDOMNamedNodeMapPtr pAttrMap = NULL;
MSXML2::IXMLDOMNodePtr?? pAttrItem;
_variant_t variantvalue;
pNode -> get_attributes( & pAttrMap);
?long? count;
count = pAttrMap -> get_length( & count);
pAttrMap -> get_item( 0 , & pAttrItem);
?// 取得節(jié)點(diǎn)的值?
?pAttrItem -> get_nodeTypedValue( & variantvalue);
m_strId = ( char?? * )(_bstr_t)variantvalue;

// 添加整個(gè)文檔的根節(jié)點(diǎn)?
?void AddRootNode( CString strRootNode , CString strText = "")
?{
??m_pElement = m_pDoc->createElement( (LPCTSTR)strRootNode );
??m_pElement ->put_text( _bstr_t( (LPCTSTR)strText) );

??m_pDoc->appendChild( m_pElement );
?}

?

三種最流行的開放源碼?XML 庫?是 expat、libxml 和 Xerces。這三者都是跨平臺(tái)的,每一種都充當(dāng) XSLT??實(shí)現(xiàn)的基礎(chǔ),一旦滿足了基本?XML?需要之后,它就會(huì)給您一條成長(zhǎng)途徑。

  • expat 是 James Clark 創(chuàng)始的開放源碼面向事件的?XML?解析?。他已經(jīng)將該項(xiàng)目轉(zhuǎn)讓給了 SourceForge 中的一個(gè)小組。有一個(gè) SAX 封裝器可供使用。在許多項(xiàng)目中都可以找到 expat 解析器,如開放源碼瀏覽器 Mozilla、XSLT 處理器 Transformiix 和 RDF 工具 repat。
  • libxml 為類似于 SAX 和 DOM 的操作提供了雙重方式 API。它支持對(duì) DTD 的驗(yàn)證,并且在 Gnome 的 XSLT 處理器libxslt?中使用。libxml 經(jīng)過重寫,已作為 libxml(2) 發(fā)布,也許還稱為?libxml2?。這個(gè)?的用戶應(yīng)該確保他們擁有了當(dāng)前版本。
  • Xerces 是非常堅(jiān)固的、擁有大量文檔的?,它充當(dāng) IBM alphaWorks?XML?4C??的基礎(chǔ)。Xerces 還用于 Apache XSLT 處理器 Xalan 中。Xerces 支持 DOM、SAX,以及對(duì) DTD 的驗(yàn)證。最新版本讀取并解釋了部分“W3C?XML?模式推薦”(打算到 2001 年底實(shí)現(xiàn)完整的?XML?模式支持)。

轉(zhuǎn)載于:https://my.oschina.net/laopiao/blog/106602

總結(jié)

以上是生活随笔為你收集整理的VC读写XML文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。