1

aspx ページを XmlDocument 変数にロードできるようにしたいと考えています。それ、どうやったら出来るの?これが私が試したもので、.aspxページではなく.xmlファイルを期待しています。その場でaspxページをxmlドキュメントに変換してロードする方法はありますか? ありがとう

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

次のエラーが表示されます。

名前は '%' 文字 (16 進値 0x25) で始めることはできません。行 1、位置 2。

4

2 に答える 2

3

そのエラーが発生する理由:

名前は '%' 文字 (16 進値 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 に答える