源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C#实现提高xml读写速度的方法

  • 时间:2022-01-11 17:10 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C#实现提高xml读写速度的方法
本文实例讲述了C#实现提高xml读写速度的方法。分享给大家供大家参考。具体实现方法如下:
[u]复制代码[/u] 代码如下:
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过程测试通过    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过程测试通过    '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则不会展开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内容事件    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
文件很大的情况下,可以考虑手动实现数据更新适配器,比如手动实现一个xml节点搜索/更新,这样就不用重写整个xml。 如果程序的i/o不是主要问题,还是用实体类整个的写入更新吧,毕竟数据的完整性是第一位的。 如是文章类的,对该目录建一个xml索引文件来存放文章的编号,url等,用xml的attribute作为标记不同字段,内容页面可以用另外的html或xml页面存放,用linq to xml操作数据,效率不是很差,个人观点。当搜索时候只要查询指定文件名xml或文件类型就可以了。 希望本文所述对大家的C#程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部