欢迎光临
我们一直在努力

XmlReader 读取器读取内存流 MemoryStream 的注意事项-.NET教程,VB.Net语言

建站超值云服务器,限时71元/月

memorystream对象提供了无需进行io就可以创建stream的方法,xmltextwriter和xmlreader提供快速书写和读取xml内容的方法,结合memorystream,就可以直接在内存中构造xmltextwriter,并用xmlreader进行读取。

使用memorystream和xmltextwriter进行书写xml,需要注意两点:xmltextwriter.flush操作和重设memorystream.position = 0。

c# 

<%@ page language=c#%>
<%@ import namespace=system.xml %>
<%@ import namespace=system.io %>
<!doctype html public “-//w3c//dtd xhtml 1.0 transitional//en” “http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd”>

<script runat=”server”>
  protected 
void button1_click(object sender, eventargs e)
  {
    response.clear();
    response.contenttype 
= text/xml;
    memorystream msxml 
= new memorystream();
    xmltextwriter xmlwriter 
= new xmltextwriter(msxml, encoding.utf8);
    xmlwriter.writestartelement(
rss);
    xmlwriter.writeattributestring(
version2.0);
    xmlwriter.writestartelement(
channel);
    xmlwriter.writeelementstring(
title【孟宪会之精彩世界】);
    xmlwriter.writeelementstring(
linkhttp://dotnet.aspx.cc/rss.aspx);
    xmlwriter.writeelementstring(
descriptionnet开发技术。);
    xmlwriter.writeelementstring(
languagezh-cn);
    xmlwriter.writeelementstring(
copyrightcopyright 1999-2007【孟宪会之精彩世界】);
    xmlwriter.writeelementstring(
managingeditoramxh[at]21cn.com);
    xmlwriter.writestartelement(
image);
    xmlwriter.writeelementstring(
title【孟宪会之精彩世界】);
    xmlwriter.writeelementstring(
width144);
    xmlwriter.writeelementstring(
height35);
    xmlwriter.writeelementstring(
linkhttp://dotnet.aspx.cc/);
    xmlwriter.writeelementstring(
urlhttp://dotnet.aspx.cc/images/logorss.gif);
    xmlwriter.writeendelement();

    //循环读出数据库内容列表,忽略
    //while (objreader.read())
    //{
    //  xmlwriter.writestartelement(“item”);
    //  xmlwriter.writeelementstring(“title”, objreader.getstring(0));
    //  xmlwriter.writeelementstring(“description”, objreader.getstring(1));
    //  xmlwriter.writeelementstring(“link”, “http://dotnet.aspx.cc/article/a933b187-06c3-4263-9eec-414a54d9c815/read.aspx”);
    //  xmlwriter.writeelementstring(“pubdate”, objreader.getdatetime(3).tostring(“g”));
    //  xmlwriter.writeendelement();
    //}
    //objreader.close();
    xmlwriter.writestartelement(item);
    xmlwriter.writeelementstring(
titleasp.net 2.0中直接将access数据库导入到excel文件中);
    xmlwriter.writeelementstring(
descriptionasp.net 2.0中直接将access数据库导入到excel文件中);
    xmlwriter.writeelementstring(
linkhttp://dotnet.aspx.cc/article/a933b187-06c3-4263-9eec-414a54d9c815/read.aspx);
    xmlwriter.writeelementstring(
pubdatesat, 02 dec 2006 09:39:58 gmt);
    xmlwriter.writeendelement();
    xmlwriter.writeendelement();
    xmlwriter.writeendelement();
    xmlwriter.flush();  
// 确保书写器更新到stream中;
    msxml.position = 0// 重置流的位置,以便我们可以从头读取     
    xmlreader xmlreader = xmlreader.create(msxml);
    
while (xmlreader.read())
    {
      
if (xmlreader.name == rss)
      {
        response.write(xmlreader.readouterxml());
      }
    }
    response.end();
    msxml.close();
    xmlwriter.close();
    xmlreader.close();
  }
</script>

<html xmlns=”http://www.w3.org/1999/xhtml”>
<head runat=”server”>
  
<title>xmlreader 读取器读取内存流 memorystream 的注意事项</title>
</head>
<body>
  
<form id=”form1″ runat=”server”>
    
<asp:button id=”button1″ runat=”server” onclick=”button1_click” text=”读取数据” />
  
</form>
</body>
</html>

vb.net

protected sub button1_click(byval sender as objectbyval e as eventargs) 
 response.clear 
 response.contenttype 
= text/xml 
 
dim msxml as memorystream = new memorystream 
 
dim xmlwriter as xmltextwriter = new xmltextwriter(msxml, encoding.utf8) 
 xmlwriter.writestartelement(
rss
 xmlwriter.writeattributestring(
version2.0
 xmlwriter.writestartelement(
channel
 xmlwriter.writeelementstring(
title【孟宪会之精彩世界】
 xmlwriter.writeelementstring(
linkhttp://dotnet.aspx.cc/rss.aspx
 xmlwriter.writeelementstring(
descriptionnet开发技术。
 xmlwriter.writeelementstring(
languagezh-cn
 xmlwriter.writeelementstring(
copyrightcopyright 1999-2007【孟宪会之精彩世界】
 xmlwriter.writeelementstring(
managingeditoramxh[at]21cn.com
 xmlwriter.writestartelement(
image
 xmlwriter.writeelementstring(
title【孟宪会之精彩世界】
 xmlwriter.writeelementstring(
width144
 xmlwriter.writeelementstring(
height35
 xmlwriter.writeelementstring(
linkhttp://dotnet.aspx.cc/
 xmlwriter.writeelementstring(
urlhttp://dotnet.aspx.cc/images/logorss.gif
 xmlwriter.writeendelement 
 xmlwriter.writestartelement(
item
 xmlwriter.writeelementstring(
titleasp.net 2.0中直接将access数据库导入到excel文件中
 xmlwriter.writeelementstring(
descriptionasp.net 2.0中直接将access数据库导入到excel文件中
 xmlwriter.writeelementstring(
linkhttp://dotnet.aspx.cc/article/a933b187-06c3-4263-9eec-414a54d9c815/read.aspx
 xmlwriter.writeelementstring(
pubdatesat, 02 dec 2006 09:39:58 gmt
 xmlwriter.writeendelement 
 xmlwriter.writeendelement 
 xmlwriter.writeendelement 
 xmlwriter.flush 
 msxml.position 
= 0 
 
dim xmlreader as xmlreader = xmlreader.create(msxml) 
 
while xmlreader.read 
   
if xmlreader.name = rss then 
     response.write(xmlreader.readouterxml) 
   
end if 
 
end while 
 response.end 
 msxml.close 
 xmlwriter.close 
 xmlreader.close 
end sub

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » XmlReader 读取器读取内存流 MemoryStream 的注意事项-.NET教程,VB.Net语言
分享到: 更多 (0)