当您想要返回 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);