[ZT]关于ASP.NET读取XML新闻的问题
2005-10-11 16:56
579 查看
<%@ Import Namespace="System"%>
<%@ Page Language="C#" Debug="true" codepage="936"%>
<%@ Import Namespace="System.IO" %>
<%@ Assembly Name="System.Xml" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<html>
<head>
<title>
</title>
<script language="c#" runat="server">
public string xslt()
{
StringWriter writer = new StringWriter();
XmlDocument xmldoc= new XmlDocument();
xmldoc.Load(Server.MapPath(Request["name"] +".xml"));
XslTransform xsldoc = new XslTransform();
xsldoc.Load(Server.MapPath("main.xsl"));
DocumentNavigator nav= new DocumentNavigator(xmldoc);
xsldoc.Transform(nav,null,writer);
return writer.ToString();
}
</script>
</head>
<body>
<%=xslt()%>
<p align="center">该程序由<a href="http://www.aspcool.com">www.aspcool.com</a>设计制作.</p>
</body>
</html>
关键的地方就是:
DocumentNavigator nav= new DocumentNavigator(xmldoc);
这句话怎么都不能解释,郁闷了很久,找了最新的MSDN Lib结果找到一个2001年的MSDN 杂志上面的一段话:
DocumentNavigator只能用于Asp.Net Beta2,痛苦,找了老半天,这段所谓经典的代码竟然是过时的产品。
没有办法,只好从后一句想办法,找
xsldoc.Transform(nav,null,writer);
总算找到了Transform这个函数的用法,
public XmlReader Transform(
XPathNavigator input,
XsltArgumentList args
);
然后就开始找XPathNavigator,不错,XmlDocument自己就带了一个CreateNavigator()函数。
总算大功告成。
修改后的代码:
<%@ Import Namespace="System"%>
<%@ Page Language="C#" Debug="true" codepage="936"%>
<%@ Import Namespace="System.IO" %>
<%@ Assembly Name="System.Xml" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<%@ Import Namespace="System.Xml.XPath" %>
<html>
<head>
<title>
</title>
<script language="c#" runat="server">
public string xslt()
{
StringWriter writer = new StringWriter();
XmlDocument xmldoc= new XmlDocument();
xmldoc.Load(Server.MapPath(Request["name"] +".xml"));
XslTransform xsldoc = new XslTransform();
xsldoc.Load(Server.MapPath("main.xsl"));
XPathNavigator nav = xmldoc.CreateNavigator();
xsldoc.Transform(nav,null,writer);
return writer.ToString();
}
</script>
</head>
<%@ Page Language="C#" Debug="true" codepage="936"%>
<%@ Import Namespace="System.IO" %>
<%@ Assembly Name="System.Xml" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<html>
<head>
<title>
</title>
<script language="c#" runat="server">
public string xslt()
{
StringWriter writer = new StringWriter();
XmlDocument xmldoc= new XmlDocument();
xmldoc.Load(Server.MapPath(Request["name"] +".xml"));
XslTransform xsldoc = new XslTransform();
xsldoc.Load(Server.MapPath("main.xsl"));
DocumentNavigator nav= new DocumentNavigator(xmldoc);
xsldoc.Transform(nav,null,writer);
return writer.ToString();
}
</script>
</head>
<body>
<%=xslt()%>
<p align="center">该程序由<a href="http://www.aspcool.com">www.aspcool.com</a>设计制作.</p>
</body>
</html>
关键的地方就是:
DocumentNavigator nav= new DocumentNavigator(xmldoc);
这句话怎么都不能解释,郁闷了很久,找了最新的MSDN Lib结果找到一个2001年的MSDN 杂志上面的一段话:
DocumentNavigator只能用于Asp.Net Beta2,痛苦,找了老半天,这段所谓经典的代码竟然是过时的产品。
没有办法,只好从后一句想办法,找
xsldoc.Transform(nav,null,writer);
总算找到了Transform这个函数的用法,
public XmlReader Transform(
XPathNavigator input,
XsltArgumentList args
);
然后就开始找XPathNavigator,不错,XmlDocument自己就带了一个CreateNavigator()函数。
总算大功告成。
修改后的代码:
<%@ Import Namespace="System"%>
<%@ Page Language="C#" Debug="true" codepage="936"%>
<%@ Import Namespace="System.IO" %>
<%@ Assembly Name="System.Xml" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<%@ Import Namespace="System.Xml.XPath" %>
<html>
<head>
<title>
</title>
<script language="c#" runat="server">
public string xslt()
{
StringWriter writer = new StringWriter();
XmlDocument xmldoc= new XmlDocument();
xmldoc.Load(Server.MapPath(Request["name"] +".xml"));
XslTransform xsldoc = new XslTransform();
xsldoc.Load(Server.MapPath("main.xsl"));
XPathNavigator nav = xmldoc.CreateNavigator();
xsldoc.Transform(nav,null,writer);
return writer.ToString();
}
</script>
</head>
相关文章推荐
- 关于ASP.NET读取XML新闻的问题
- 发发牢骚,关于ASP.NET读取XML新闻的问题
- 关于ASP.NET读取XML新闻的问题
- ASP.NET中关于XML的AJAX的读取与删除
- [ZT] ASP.NET 关于大文件上传问题
- 关于asp.net MVC发布后,网站无法读取数据库的问题
- 关于asp.net unity框架结构无法读取配置节“unity”问题处理办法
- 在asp.net中读取XML文件信息的4种方法(ZT)
- (转)ASP.NET(C#) 读取EXCEL ——另加解决日期问题
- 关于在IIS服务器上运行asp.net Web程序出现下面 “Could not load file or assembly。。。”问题的
- 关于在asp.net后台输出提示字符串的时候显示的字符提示出错的问题
- asp.net读取asp的cookies乱码问题
- asp.net关于页面不回发的问题,寻求完美解决方案
- 关于ASP.NET在IIS一些问题的经验总结
- asp.net如何读取xml文件中的数据
- ASP.Net关于Validator控件的奇怪问题
- 关于AJAX调用ASP.NET MVC 或者WEBAPI项目提示I跨域问题的解决办法
- 关于ASP.NET中独立页面设置身份认证等问题
- 分析ASP.NET读取XML文件4种方法
- 关于asp.net中gridview的问题,关于footer,16aspx上下的英语交流网程序,管理员的添加和修改有问题