网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 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或文件类型就可以了。
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/17 6:55:27