1

我希望能够将 aspx 页面加载到 XmlDocument 变量中。我怎么做?这是我尝试过的,它期望的 .xml 文件而不是 .aspx 页面。有什么方法可以将 aspx 页面即时转换为 xml 文档并加载它?谢谢

string filePath = @"C:\WebApplication1\webform4.aspx";
XmlDocument document = new XmlDocument();
document.Load(filePath);

我收到以下错误:

名称不能以 '%' 字符开头,十六进制值 0x25。第 1 行,位置 2。

4

2 回答 2

3

您收到该错误的原因:

名称不能以 '%' 字符开头,十六进制值 0x25。第 1 行,位置 2。

是因为.aspx页面通常不是有效的 XML。ASP.NET.aspx页面包含如下指令:

<%@ Page Language="C#" [possibly other stuff] %>

<%@并且%>不是有效的 XML,这就是您无法加载原始 ASPX 页面的原因。

现在,即使您要删除这些指令,也很有可能除非您非常非常严格并且页面上的所有标记都是 XHTML,否则也不会加载。

您可能想尝试使用可通过 NuGet 下载的HTML Agility Pack加载页面(带有或不带有指令)。

于 2012-07-12T00:29:54.533 回答
1

XmlDocument 代表 Xml,所以如果你尝试加载一个 aspx,它会抛出错误,抱怨无效的 xml

但是,如果来自 .aspx 的响应是例如"<?xml..... ><Employee>dotNetMan</Employee>"字符串,那么它会起作用

您必须将内容类型设置为text/xml

这是一个很好的例子,如何从 aspx http://www.benhblog.com/2008/07/returning-xml-from-aspx-page.html返回 xml

于 2012-07-12T00:27:54.947 回答