XML を返したいときに、誰もが XmlDocument を返すように述べている方法を読み続けています。生の XML を文字列として返す方法はありますか? 私は、XML を含む文字列を返す多くの Web サービス (他の人が作成したもの) を使用してきました。XmlDocument を返す場合、そのメソッドは .Net 上にないユーザーによってどのように消費されるのでしょうか?
生の XML を でラップせずに文字列として返す方法は何<string></string>ですか?
ありがとう!
XML を返したいときに、誰もが XmlDocument を返すように述べている方法を読み続けています。生の XML を文字列として返す方法はありますか? 私は、XML を含む文字列を返す多くの Web サービス (他の人が作成したもの) を使用してきました。XmlDocument を返す場合、そのメソッドは .Net 上にないユーザーによってどのように消費されるのでしょうか?
生の XML を でラップせずに文字列として返す方法は何<string></string>ですか?
ありがとう!
.Net Web サービスについて最初に理解すべきことは、それらが SOAP プロトコルを使用していたことです。これは、Web メソッドを介して返される型が何であれ、XML にシリアル化されることを意味します。したがって、返されるすべてのオブジェクトは、呼び出し元に返される XML 文字列になります。
XML を実際の文字列値として返すだけの場合は、次のように Web サービス内にサーバー側のメソッドを作成します。
[WebMethod]
public string ReturnXMLString() {
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<root><item>Hello World</item></root>");
return xmlDoc.OuterXML;
}
ただし、実際の XML を呼び出し元に返そうとする場合は、次のように .Net に XML のシリアライズを任せます。
[WebMethod]
public XmlDocument ReturnXMLString() {
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<root><item>Hello World</item></root>");
return xmlDoc;
}
最後に、SOAP プロトコルを使用せずに単純に XML 応答を探している場合は、応答を XML としてラップしてシリアライズし、特注のページからページ応答を試してください。
void Page_Load(object sender, EventArgs e) {
XmlDocument xmlDoc= new XmlDocument();
xmlDoc.LoadXml("<root>Hello World</root>");
Response.ContentType ="text/xml";
xmlDoc.Save(Response.Output);