我希望能够将aspx页面加载到XmlDocument变量中。我怎么做?这是我尝试过的和它期待的.xml文件而不是.aspx页面。有没有办法将aspx页面即时转换为xml文档并加载它?感谢
string filePath = @"C:\WebApplication1\webform4.aspx";
XmlDocument document = new XmlDocument();
document.Load(filePath);
我收到以下错误:
名称不能以'%'字符开头,十六进制值0x25。第1行,第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的一个很好的示例