0

X でホストされている 1 つの Web サイトが、参照すると純粋な XML を返す URL を公開するシナリオをセットアップするにはどうすればよいですか。

他の場所にある Web ページがこの URL にアクセスし、XML をオブジェクトにロードします。

だから私はhttp://www.xml.com/document.aspx?id=1のようなURLが欲しい

別のサイトでは、webresponse オブジェクトと webrequest オブジェクトを使用して上記のページからの応答を取得します。応答を適切な XML にしたいので、XML を使用してオブジェクトを入力するだけです。

何かが機能しましたが、応答にはページをレンダリングするために必要なすべての HTML が含まれており、実際には応答として XML が必要です。

4

1 に答える 1

0

おそらく、これを行う最善の方法は HttpHandler/ASHX ファイルを使用することですが、ページを使用する場合は完全に可能です。重要なポイントは次の 2 つです。

  1. 空のページを使用します。ASPX のマークアップに必要なのは <% Page ... %> ディレクティブだけです。
  2. 応答ストリームの ContentType を XML に設定します -Response.ContentType = "text/xml"

XML 自体をどのように生成するかはユーザー次第ですが、XML がオブジェクト グラフを表す場合は、XmlSerializer(System.Xml.Serialization名前空間から) を使用して、XML を Response ストリームに直接書き込むことができます。

using System.Xml.Serialization;

// New up a serialiser, passing in the System.Type we want to serialize
XmlSerializer serializer = new XmlSerializer(typeof(MyObject));

// Set the ContentType
Response.ContentType = "text/xml";

// Serialise the object to XML and pass it to the Response stream 
// to be returned to the client
serialzer.Serialize(Response.Output, MyObject);

XML が既にある場合は、ContentType を設定したら、それを Response ストリームに書き込んで、ストリームを終了してフラッシュするだけです。

// Set the ContentType
Response.ContentType = "text/xml";

Response.Write(myXmlString);

Response.Flush();
Response.End();
于 2012-10-23T11:22:16.593 に答える