错误:重载“XmlTextReader”方法未获取“1”参数,请问需要什么参数?

qufs 2003-08-24 02:09:51
public void Page_Load(object src, System.EventArgs e)
{
string filename=Server.MapPath("AddressBook.xml");
XmlTextReader reader=null;
try
{
reader=new XmlTextReader(filename);//错误:重载“XmlTextReader”方法未获取“1”参数

while(reader.Read())
{
switch(reader.NodeType)
{
case XmlNodeType.Element: Response.Write(Server.HtmlEncode("<"+reader.Name+">")+"<br>");
break;
case XmlNodeType.Text: Response.Write(reader.Value+"<br>");
break;
case XmlNodeType.CDATA: Response.Write(Server.HtmlEncode("<![CDATA["+reader.Value+"]]>")+"<br>");
break;
case XmlNodeType.ProcessingInstruction: Response.Write(Server.UrlEncode("<?"+reader.Name+" "+reader.Value+"?>")+"<br>");
break;
case XmlNodeType.Comment: Response.Write(Server.UrlEncode("<!--"+reader.Value+"-->")+"<br>");
break;
case XmlNodeType.Document:
break;
case XmlNodeType.DocumentType: Response.Write(Server.HtmlEncode("<!DOCTYPE "+reader.Name+"["+reader.Value+"]")+"<br>");
break;
case XmlNodeType.EntityReference: Response.Write(reader.Name+"<br>");
break;
case XmlNodeType.EndElement: Response.Write(Server.HtmlEncode("</"+reader.Name+">")+"<br>");
break;
}
}
}
finally
{
if(reader!=null)
{
reader.Close();
}
}
}
...全文
139 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qufs 2003-08-25
  • 打赏
  • 举报
回复
谢谢大家了,我把代码在别人的环境下执行,结果也是正常的,真不知道是什么原因。还是结贴吧。
qufs 2003-08-25
  • 打赏
  • 举报
回复
请问xixigongzhu(夕夕公主):你运行的是第二种方法的代码吗?第一种方法是可以的,但第二种方法为什么我却编译不过呢?
xixigongzhu 2003-08-25
  • 打赏
  • 举报
回复
把你的代码copy下来,运行很正常呀。
qufs 2003-08-25
  • 打赏
  • 举报
回复
panyee(快乐王子):我已经试过,filename没有问题。我把整段代码直接放在.aspx文件里,运行是正确的,代码如下:
<%@ Page language="c#"%>
<%@Import Namespace="System"%>
<%@Import Namespace="System.Xml"%>
<%@Import Namespace="System.IO"%>
<script language="C#" runat="server">
public void Page_Load(object src,EventArgs e)
{
//XmlTextReader reader=new XmlTextReader("books.xml");
string filename=Server.MapPath("books.xml");
XmlTextReader reader=null;
try
{
reader=new XmlTextReader(filename);
while(reader.Read())
{
switch(reader.NodeType)
{
case XmlNodeType.Element:
Response.Write(Server.HtmlEncode("<"+reader.Name+">")+"<br>");
break;
case XmlNodeType.Text:
Response.Write(reader.Value+"<br>");
break;
case XmlNodeType.CDATA:
Response.Write(Server.HtmlEncode("<![CDATA["+reader.Value+"]]>")+"<br>");
break;
case XmlNodeType.ProcessingInstruction:
Response.Write(Server.HtmlEncode("<?"+reader.Name+" "+reader.Value+"?>")+"<br>");
break;
case XmlNodeType.Comment:
Response.Write(Server.HtmlEncode("<!--"+reader.Value+"-->")+"<br>");
break;
case XmlNodeType.XmlDeclaration:
Response.Write(Server.HtmlEncode("<?xml version=\"1.0\" encoding=\"gb2312\" ?>")+"<br>");
break;
case XmlNodeType.Document:
break;
case XmlNodeType.DocumentType:
Response.Write(Server.HtmlEncode("<!DOCTYPE "+reader.Name+"["+reader.Value+"]>")+"<br>");
break;
case XmlNodeType.EntityReference:
Response.Write(reader.Name+"<br>");
break;
case XmlNodeType.EndElement:
Response.Write(Server.HtmlEncode("</"+reader.Name+">")+"<br>");
break;
}
}
}
finally
{
if(reader!=null)
reader.Close();
}
}
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>XmlTextReader</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<FONT face="宋体"></FONT>
</form>
</body>
</HTML>
*************************************
但是我把处理程序放到.aspx.cs中,编译时却通不过,真是太奇怪了,大家帮忙看一下。
.aspx文件代码:
<%@ Page language="c#" Codebehind="XmlTextReader1.aspx.cs" AutoEventWireup="false" Inherits="newaspx.XmlTextReader1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>XmlTextReader1</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<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">
<FONT face="宋体"></FONT>
</form>
</body>
</HTML>
-------------------------------------------
.aspx.cs文件代码:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Xml;

namespace newaspx
{
/// <summary>
/// XmlTextReader1 的摘要说明。
/// </summary>
public class XmlTextReader1 : System.Web.UI.Page
{
public void Page_Load(object src,EventArgs e)
{
//XmlTextReader reader=new XmlTextReader("books.xml");
string filename=Server.MapPath("books.xml");
XmlTextReader reader=null;

try
{
reader=new XmlTextReader(filename);
while(reader.Read())
{
switch(reader.NodeType)
{
case XmlNodeType.Element:
Response.Write(Server.HtmlEncode("<"+reader.Name+">")+"<br>");
break;
case XmlNodeType.Text:
Response.Write(reader.Name+"<br>");
break;
case XmlNodeType.CDATA:
Response.Write(Server.HtmlEncode("<![CDATA["+reader.Value+"]]>")+"<br>");
break;
case XmlNodeType.ProcessingInstruction:
Response.Write(Server.HtmlEncode("<?"+reader.Name+" "+reader.Value+"?>")+"<br>");
break;
case XmlNodeType.Comment:
Response.Write(Server.HtmlEncode("<!--"+reader.Value+"-->")+"<br>");
break;
case XmlNodeType.XmlDeclaration:
Response.Write(Server.HtmlEncode("<?xml version=\"1.0\" encoding=\"gb2312\" ?>")+"<br>");
break;
case XmlNodeType.Document:
break;
case XmlNodeType.DocumentType:
Response.Write(Server.HtmlEncode("<!DOCTYPE "+reader.Name+"["+reader.Value+"]>")+"<br>");
break;
case XmlNodeType.EntityReference:
Response.Write(reader.Name+"<br>");
break;
case XmlNodeType.EndElement:
Response.Write(Server.HtmlEncode("</"+reader.Name+">")+"<br>");
break;
}
}
}
finally
{
if(reader!=null)
reader.Close();
}

}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
}
}

panyee 2003-08-24
  • 打赏
  • 举报
回复
应该也不是命名空间的问题,要不在XmlTextReader reader=null;这一行就应该报错

你把filename打印出来看看是否正确

后面加个return先别执行其它语句
qufs 2003-08-24
  • 打赏
  • 举报
回复
It's a a compiler error,I used "using System.Xml".
saucer 2003-08-24
  • 打赏
  • 举报
回复
what version of .NET are you using? is that a compiler error or runtime error? did you use <%@ Import Namespace="System.Xml"%> or using System.Xml?
qufs 2003-08-24
  • 打赏
  • 举报
回复
saucer(思归, .NET MVP)提出的问题,我都检查过了,文件肯定存在,权限也有,格式也是正确的。
雪狼1234567 2003-08-24
  • 打赏
  • 举报
回复
在介绍完.Net框架中和XML有关的命名空间和相关类后,我接着向大家介绍和XML相关的一些操作。首先,我向大家介绍的读取XML文档的方法。在下面的实例程序中,我将运用VS.net开发工具附带的"books.xml"文件来作为示例。你可以在你的机器上搜索到该文件(或请参考附录),或者你也可以运用其他的XML文件。

首先,我们用XmlTextReader类的对象来读取该XML文档。方法很简单,就是在创建新对象的构造函数中指明XML文件的位置即可。

XmlTextReader textReader = new XmlTextReader("C:\\books.xml");

一旦新对象创建完毕,你就可以调用其Read方法来读取XML文档了。调用Read方法之后,信息被存储起来,你可以通过读取该对象的Name、BaseURI、Depth、LineNumber等属性来获取这些信息。下面我给出一个完整的实例,该实例通过简单的读取"books.xml"文件,然后将其中的信息显示在控制台中。

saucer 2003-08-24
  • 打赏
  • 举报
回复
1. does the file exist?
2. does ASPNET have permissions to read the file? check in the Windows Explorer on the file for security permissions
3. is the file a valid xml file?
qufs 2003-08-24
  • 打赏
  • 举报
回复
应该不是其他地方的问题,我把其他语句都删掉,只留下
string filename=Server.MapPath("AddressBook.xml");
XmlTextReader reader=null;
reader=new XmlTextReader(filename);
这三句,还是一样的错误。
cnhgj 2003-08-24
  • 打赏
  • 举报
回复
这样应该没问题啊

string filename = Server.MapPath("dddd.xml");
XmlTextReader ra = null;
ra = new XmlTextReader(filename);

看看别的地方有没有错

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧