国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C# > 正文

C#實(shí)現(xiàn)提高xml讀寫(xiě)速度的方法

2019-10-29 21:44:42
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了C#實(shí)現(xiàn)提高xml讀寫(xiě)速度的方法,并且針對(duì)各類(lèi)文件的讀寫(xiě)做了較為細(xì)致的分析,非常實(shí)用,需要的朋友可以參考下
 

本文實(shí)例講述了C#實(shí)現(xiàn)提高xml讀寫(xiě)速度的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:

 

復(fù)制代碼代碼如下:
dim domxmldocument as system.xml.xmldocument  
  dim tmppath as string = apptempfilepath  
  dim xmlfile as string = tmppath + "\testxml.xml"  
'窗體加載事件  
  private sub testxml_load(byval sender as system.object, byval e as system.eventargs) handles mybase.load  
  '讀xml過(guò)程測(cè)試通過(guò)  
  dim domxmldocument as system.xml.xmldocument  
  dim tmppath as string = apptempfilepath  
  dim xmlfile as string = tmppath + "\testxml.xml"  
  dim reader as system.xml.xmlreader = nothing  
  try  
  reader = new xml.xmltextreader(xmlfile)  
  'reader.  
  while reader.read  
  me.lboxxml.items.add(reader.name + reader.value)  
  end while  
  catch ex as exception  
  msgbox(ex.message)  
  finally  
  if not (reader is nothing) then  
  reader.close()  
  end if  
  end try  
  end sub  
  '載入xml事件  
  private sub btnxmlload_click(byval sender as system.object, byval e as system.eventargs) handles btnxmlload.click  
  'me.lboxxml.items.clear()  
  ''讀xml過(guò)程測(cè)試通過(guò)  
  'dim reader as system.xml.xmlreader = nothing  
  'try  
  ' reader = new xml.xmltextreader(xmlfile)  
  ' while reader.read  
  ' me.lboxxml.items.add(reader.name + ":" + reader.value)  
  ' end while  
  'catch ex as exception  
  ' msgbox(ex.message)  
  'finally  
  ' if not (reader is nothing) then  
  ' reader.close()  
  ' end if  
  'end try  
  dim ds as new dataset  
  try  
  '如果直接使用ds做datasource則不會(huì)展開(kāi)datagrid,用dv則能直接顯示正確。  
  ds.readxml(xmlfile)  
  dim tb as datatable  
  dim dv as dataview  
  tb = ds.tables(0)  
  dv = new dataview(tb)  
  datagrid1.datasource = dv  
  'datagrid1.datamember = "testxmlmember"  
  'datagrid1.datamember = "employeefname"  
  'dim dxd as new xmldatadocument  
  catch ex as exception  
  msgbox(ex.message.tostring)  
  end try  
  end sub  
  '保存新建xml內(nèi)容事件  
  private sub btnsavenew_click(byval sender as system.object, byval e as system.eventargs) handles btnsavenew.click  
  dim mytw as new xmltextwriter(tmppath + "\testxmlwrite.xml", nothing)  
  mytw.writestartdocument()  
  mytw.formatting = formatting.indented  
  mytw.writestartelement("team")  
  mytw.writestartelement("player")  
  mytw.writeattributestring("name", "george zip")  
  mytw.writeattributestring("position", "qb")  
  mytw.writeelementstring("nickname", "zippy")  
  mytw.writeelementstring("jerseynumber", xmlconvert.tostring(7))  
  mytw.writeendelement()  
  mytw.writeendelement()  
  mytw.writeenddocument()  
  mytw.close()  
  end sub

文件很大的情況下,可以考慮手動(dòng)實(shí)現(xiàn)數(shù)據(jù)更新適配器,比如手動(dòng)實(shí)現(xiàn)一個(gè)xml節(jié)點(diǎn)搜索/更新,這樣就不用重寫(xiě)整個(gè)xml。
如果程序的i/o不是主要問(wèn)題,還是用實(shí)體類(lèi)整個(gè)的寫(xiě)入更新吧,畢竟數(shù)據(jù)的完整性是第一位的。
如是文章類(lèi)的,對(duì)該目錄建一個(gè)xml索引文件來(lái)存放文章的編號(hào),url等,用xml的attribute作為標(biāo)記不同字段,內(nèi)容頁(yè)面可以用另外的html或xml頁(yè)面存放,用linq to xml操作數(shù)據(jù),效率不是很差,個(gè)人觀點(diǎn)。當(dāng)搜索時(shí)候只要查詢(xún)指定文件名xml或文件類(lèi)型就可以了。

 

希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 武陟县| 天水市| 漠河县| 眉山市| 班玛县| 罗甸县| 荆州市| 天峨县| 灵寿县| 长顺县| 遂平县| 格尔木市| 孟津县| 岳池县| 鹤峰县| 施甸县| 诏安县| 如皋市| 霍林郭勒市| 通山县| 股票| 江孜县| 静宁县| 双桥区| 垫江县| 哈密市| 常熟市| 新沂市| 乐安县| 梁山县| 巴南区| 汉寿县| 合江县| 香格里拉县| 洛隆县| 重庆市| 公主岭市| 青龙| 股票| 鹤岗市| 裕民县|