C#实现提高xml读写速度的方法_C#教程-查字典教程网
C#实现提高xml读写速度的方法
C#实现提高xml读写速度的方法
发布时间:2016-12-28 来源:查字典编辑
摘要:本文实例讲述了C#实现提高xml读写速度的方法。分享给大家供大家参考。具体实现方法如下:复制代码代码如下:dimdomxmldocument...

本文实例讲述了C#实现提高xml读写速度的方法。分享给大家供大家参考。具体实现方法如下:

复制代码 代码如下: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#程序设计有所帮助。

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新C#教程学习
    热门C#教程学习
    编程开发子分类