2012-07-12 62 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