Frage

Ich lese immer wieder, wie jeder sagt, dass jeder ein XMLDocument zurückgibt, wenn Sie XML zurückgeben möchten. Gibt es eine Möglichkeit, RAW XML als Zeichenfolge zurückzugeben? Ich habe viele Webdienste (geschrieben von anderen) verwendet, die eine Zeichenfolge zurückgeben, die XML enthält. Wenn Sie ein XMLDocument zurückgeben, wie wird diese Methode von Benutzern konsumiert, die nicht auf .NET sind?

Wie ist die Methode, um den rohen XML als Zeichenfolge zurückzugeben, ohne dass sie mit einem Wickel eingewickelt wurde? <string></string>?

Vielen Dank!

War es hilfreich?

Lösung

Das erste, was Sie mit .NET -Webservices verstehen sollten, ist, dass sie das SOAP -Protokoll verwendeten. Dies bedeutet, dass alle Typen, die Sie über Ihre Webmethode zurückgeben, nach XML serialisiert werden. Daher ist jedes zurückgegebene Objekt eine XML -Zeichenfolge, die an den Anrufer weitergegeben wird.

Wenn Sie immer noch einfach XML als tatsächlichen Zeichenfolgewert zurückgeben möchten, erstellen Sie wie folgt eine Server -Seitenmethode in Ihrem Webservice:

[WebMethod]
public string ReturnXMLString() {
    XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.LoadXml("<root><item>Hello World</item></root>");
    return xmlDoc.OuterXML;
}

Wenn Sie jedoch versuchen, den tatsächlichen XML an einen Anrufer zurückzugeben, lassen Sie sich einfach um die Serialisierung der XML kümmern wie folgt:

[WebMethod]
public XmlDocument ReturnXMLString() {
    XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.LoadXml("<root><item>Hello World</item></root>");
    return xmlDoc;
}

Wenn Sie einfach nach einer XML -Antwort ohne das SOAP -Protokollverpackung und die Serialisierung der Antwort als XML suchen, versuchen Sie es mit einer Seitenantwort von einer maßgeschneiderten Seite:

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);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top