CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

ASPX 读取 XML 的问题。

楼主SKYWIND6521(风)2002-04-11 22:44:34 在 .NET技术 / ASP.NET 提问

我的Readx.aspx如下:  
  <%@   Page   Language="VB"   Debug="true"   %>  
  <%@   Import   Namespace="System"   %>  
  <%@   Import   Namespace="System.Data"   %>  
  <%@   Import   Namespace="System.Web"   %>  
  <%@   Import   Namespace="System.IO"   %>  
  <%@   Import   Namespace="System.XML"   %>  
  <HTML>  
  <HEAD>  
  <script   language="VB"   runat="server">  
  Sub   Page_load(sender   As   Object,   e   As   EventArgs)    
   
  Dim   XFile1   as   FileStream   =   New   FileStream("ordersS.xml",FileMode.Open)  
  Dim   XFile2   as   FileStream   =   New   FileStream("ordersD.xml",FileMode.Open)  
  Dim   DS   As   DataSet   =   New   DataSet  
   
  DS.ReadXmlSchema(XFile1)'读取结构  
  DS.ReadXmlData(XFile2)'读取资料  
   
  XFile1.Close'关闭两个文字档  
  XFile2.Close  
   
  Msg.Text="来源档:   ordersS.xml   及   ordersd.xml"  
  XShow.DataSource=DS.Tables(0).DefaultView  
  XShow.DataBind()  
  End   sub  
   
  </script>  
  </HEAD>  
  <body>  
  <p>ReadX.aspx   目的:读取XML</p>  
  <form   runat="server"   ID="Form1">  
  <asp:label   id="Msg"   Runat="server"   />  
  <BR>  
  <ASP:DataGrid   id="XShow"   runat="server"   BorderColor="black"   BorderWidth="1"   GridLines="Both"   CellPadding="3"   CellSpacing="0"   Font-Name="Verdana"   Font-Size="8pt"   HeaderStyle-BackColor="#aaaadd"></ASP:DataGrid>  
  </form>  
  </body>  
  </HTML>  
  两个xml文件在readx.aspx同一目录里,  
  但是IE6浏览readx.aspx却读不到xml   ,  
  有哪位高手贤救小弟一命?很赶啊,这个程序…… 问题点数:50、回复次数:12Top

1 楼dreammaster(天涯)回复于 2002-04-11 23:32:12 得分 0

Dim   XFile1   as   FileStream   =   New   FileStream(Server.MapPath("ordersS.xml"),FileMode.Open)  
  Dim   XFile2   as   FileStream   =   New   FileStream(Server.MapPath("ordersD.xml"),FileMode.Open)  
  Top

2 楼crystal2000(Sun)回复于 2002-04-12 08:04:16 得分 0

请参考这个函数:  
  public   String   getMessage()  
  {  
  String   returnStr="";  
  String   xmlPath=HttpContext.Current.Server.MapPath("include\\messages.xml");  
  XmlDocument   _doc=new   XmlDocument();  
  _doc.Load(xmlPath);  
  XmlNodeList   _xmlTitle=_doc.GetElementsByTagName("title");  
  XmlNodeList   _xmlColor=_doc.GetElementsByTagName("color");  
  XmlNodeList   _xmllinkedUrl=_doc.GetElementsByTagName("linkedUrl");  
  for   (int   i=0;i<_xmlTitle.Count;i++)  
  {  
  if   (_xmllinkedUrl[i].InnerText=="null")  
  {  
  returnStr=returnStr   +   "<font   color='"+   _xmlColor[i].InnerText   +   "'>"   +   _xmlTitle[i].InnerText   +   "</font><br>";  
  }  
  else  
  {  
  returnStr=returnStr   +   "<a   href='"+   _xmllinkedUrl[i].InnerText   +   "'   target='_blank'><font   color='"+   _xmlColor[i].InnerText   +   "'>"   +   _xmlTitle[i].InnerText   +   "</font></a><br>";  
  }  
   
  }  
  return   returnStr;  
   
  }Top

3 楼SKYWIND6521(风)回复于 2002-04-12 10:11:27 得分 0

dreammaster(天涯)   兄,还是不行的啊,我好像也这样试过,我也想:可能是读xml的路径的问题了Top

4 楼timmy3310(Tim)回复于 2002-04-12 10:24:41 得分 0

以下代码可以写在页面的cs文件中  
  当前主机名:Context.Request.Url.Host    
  当前应用程序名:Context.Request.ApplicationPath  
  当前应用程序根目录:  
          Context.Request.Url.Host   +   Context.Request.ApplicationPathTop

5 楼timmy3310(Tim)回复于 2002-04-12 10:26:03 得分 0

以上的路径是Url,不是Windows下面的绝对路径,所以在前面加上"http://"Top

6 楼SKYWIND6521(风)回复于 2002-04-12 13:42:32 得分 0

还是   XML   读取路径问题,我一气之下改成这样……  
  <%@   Page   Language="VB"   Debug="true"   %>  
  <%@   Import   Namespace="System"   %>  
  <%@   Import   Namespace="System.Data"   %>  
  <%@   Import   Namespace="System.Web"   %>  
  <%@   Import   Namespace="System.IO"   %>  
  <%@   Import   Namespace="System.XML"   %>  
   
  <HTML>  
  <HEAD>  
  <script   language="VB"   runat="server">  
  Sub   Page_load(sender   As   Object,   e   As   EventArgs)    
  'x=Server.MapPath("ReadX.aspx")  
  'x=Left(x,Len(x)-10)  
   
  'Dim   XFile1   as   FileStream   =   New   FileStream(Server.MapPath("ordersS.xml")"ordersS.xml",FileMode.Open)  
  'Dim   XFile2   as   FileStream   =   New   FileStream(Server.MapPath("ordersD.xml")"ordersD.xml",FileMode.Open)  
   
  Dim   XFile1   as   FileStream   =   New   FileStream("http://**这里是我的服务器地址**/OrdersS.xml",FileMode.Open)  
  Dim   XFile2   as   FileStream   =   New   FileStream("http://**这里是我的服务器地址**/OrdersD.xml",FileMode.Open)  
   
  Dim   DS   As   DataSet   =   New   DataSet  
  DS.ReadXmlSchema(XFile1)'读取结构  
  DS.ReadXmlData(XFile2)'读取资料  
   
  XFile1.Close'关闭两个文字档  
  XFile2.Close  
   
  Msg.Text="来源档:   ordersS.xml   及   ordersd.xml"  
  XShow.DataSource=DS.Tables(0).DefaultView  
  XShow.DataBind()  
  End   sub  
   
  </script>  
  </HEAD>  
  <body   bgcolor="#999999">  
  <p>ReadX.aspx   目的:读取XML</p>  
  <form   runat="server"   ID="Form1">  
  <asp:label   id="Msg"   Runat="server"   />  
  <BR>  
  <ASP:DataGrid   id="XShow"   runat="server"   BorderColor="black"   BorderWidth="1"   GridLines="Both"   CellPadding="3"   CellSpacing="0"   Font-Name="Verdana"   Font-Size="8pt"   HeaderStyle-BackColor="#aaaadd"   Height="128px"   Width="184px"></ASP:DataGrid>  
  </form>  
  </body>  
  </HTML>  
   
  这下可好了………………………………  
  ……………………………………………  
  还是不行!!!   唉~~~~~~    
  不过我不明白   timmy3310(tim)   的如何做,可以详细点吗?谢谢了Top

7 楼timmy3310(Tim)回复于 2002-04-12 13:55:02 得分 0

你先直接写上XML文件的Url:  
  "http://服务器地址/路径/文件名";  
  读读看,如果能读出来,证明确实是路径的问题  
  然后你再把地址换成如下看看:  
  "http://"+Context.Request.Url.Host   +   Context.Request.ApplicationPath  
  +"文件名"Top

8 楼yxrj()回复于 2002-04-12 14:34:37 得分 0

试试不用stream  
  ds.ReadXml(Server.MapPath("ordersD.xml"));  
  ds.Re...  
   
  不行再试试只读数据不读架构,后者不是必需的  
   
  最后如果用vs.net的话,建议使用Codebehind,至少调试方便,hehe  
   
   
  Top

9 楼SKYWIND6521(风)回复于 2002-04-13 12:10:31 得分 0

请高手调试后再上贴好吗?有劳了……  
  因为我有点怀疑我装VS.NET更新服务器时出了点问题,  
  因为我每运行   timmy3310(tim)   的方法,  
  总是变成   从WEB页download   readx.aspx   的烦人效果……  
   
  是了,我是刚接触这个VS.NET的,这个codebehind似乎很好用,  
  但我目前没有相关的书和资料……  
  有谁有得介绍啊   ?   先谢谢了!Top

10 楼terryxin(南方窗口)回复于 2002-04-13 14:16:58 得分 0

这样试试这是webform2.aspx文件  
  <%@   Page   Language="vb"   AutoEventWireup="false"   Codebehind="WebForm2.aspx.vb"   Inherits="test1.WebForm2"   %>  
  <!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.0   Transitional//EN">  
  <HTML>  
  <HEAD>  
  <title>WebForm2</title>  
  <meta   name="GENERATOR"   content="Microsoft   Visual   Studio.NET   7.0">  
  <meta   name="CODE_LANGUAGE"   content="Visual   Basic   7.0">  
  <meta   name="vs_defaultClientScript"   content="JavaScript">  
  <meta   name="vs_targetSchema"   content="http://schemas.microsoft.com/intellisense/ie5">  
  </HEAD>  
  <body   MS_POSITIONING="GridLayout">  
  <form   id="Form1"   method="post"   runat="server">  
  <asp:DataGrid   id="dgxml"   style="Z-INDEX:   101;   LEFT:   297px;   POSITION:   absolute;   TOP:   199px"   runat="server"></asp:DataGrid>  
  </form>  
  </body>  
  </HTML>  
  下面的文件是webform2.aspx.vb  
  Imports   System.Data  
  Imports   System.Xml  
  Imports   System.Data.SqlClient  
   
  Public   Class   WebForm2  
          Inherits   System.Web.UI.Page  
          Protected   WithEvents   dgxml   As   System.Web.UI.WebControls.DataGrid  
   
  #Region   "   Web   Form   Designer   Generated   Code   "  
   
          'This   call   is   required   by   the   Web   Form   Designer.  
          <System.Diagnostics.DebuggerStepThrough()>   Private   Sub   InitializeComponent()  
   
          End   Sub  
   
          Private   Sub   Page_Init(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   MyBase.Init  
                  'CODEGEN:   This   method   call   is   required   by   the   Web   Form   Designer  
                  'Do   not   modify   it   using   the   code   editor.  
                  InitializeComponent()  
          End   Sub  
   
  #End   Region  
   
          Private   Sub   Page_Load(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   MyBase.Load  
                  'Put   user   code   to   initialize   the   page   here  
                  Dim   dscustomers   As   DataSet   =   New   DataSet()  
                  dscustomers.ReadXml(Server.MapPath("mycust.xml"),   XmlReadMode.Auto)  
                  dgxml.DataSource   =   dscustomers  
                  dgxml.DataBind()  
                  dscustomers   =   Nothing  
   
   
   
          End   Sub  
   
                 
          End   Sub  
  End   Class  
   
  Top

11 楼terryxin(南方窗口)回复于 2002-04-13 14:17:54 得分 50

我调试通过的Top

12 楼SKYWIND6521(风)回复于 2002-04-15 17:03:19 得分 0

太感动了,终于行了。  
   
  我晕了,原来我的SDK   不太行,我第一次调试的时候还是通不过,  
  但是你说你通过的,  
   
  所以我在别人的机器上一试:     也通过!!  
  我只好重装个SDK……  
  ………………  
  …………………………  
  ………………………………  
   
  经过了许许多多………………     OK   了,非常多谢!!!   全部分数是你应得的!!!thxTop

相关问题

  • XML读取问题
  • XML读取问题
  • xml读取问题
  • 关于读取XML
  • 很奇怪的问题!求助!flash读取aspx生成的xml的问题(在线等)
  • 读取 XML 数据岛
  • 如何读取XML文件??
  • 读取XML的问题
  • xsl中读取xml问题!~~~~~~~~~
  • c#读取xml的问题

关键词

  • vs.net
  • xml
  • aspx
  • 读取xml

得分解答快速导航

  • 帖主:SKYWIND6521
  • terryxin

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo