将aspx文件加载到xmldocument中

时间:2012-07-12 00:20:14

标签: c# asp.net xml xmldocument

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

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

我收到以下错误:

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

2 个答案:

答案 0 :(得分:3)

您收到该错误的原因:

  

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

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

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

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

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

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

答案 1 :(得分: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的一个很好的示例