2012-07-12 66 views
1

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

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

我得到以下错误:

名称不能以 '%' 字符,十六进制值0x25开始。 1号线,2位

+0

问题是什么?你有例外吗? – Kev 2012-07-12 00:23:54

+0

更新为实际错误信息 – 2012-07-12 00:25:03

+0

它不喜欢文件开始处的“<%@ Page ..%>”。删除它,它应该加载英寸 – 2012-07-12 00:26:29

回答

3

原因你得到错误:

Name cannot begin with the '%' character, hexadecimal value 0x25. Line 1, position 2.

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

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

<%@%>不是有效的XML这就是为什么你不能加载的原始ASPX页面。

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

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

1

XmlDocument的代表的Xml因此,如果您尝试加载一个aspx它会引发错误抱怨不是有效的XML

但是如果从未来的.aspx的响应是如"<?xml..... ><Employee>dotNetMan</Employee>"为字符串,则是它将工作

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

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

+0

我该怎么做? – 2012-07-12 00:30:27

+0

@ dotnet-practitioner我已经更新与示例链接的答案 – HatSoft 2012-07-12 00:33:01

+0

谢谢HatSoft ... – 2012-07-12 14:24:02