繁体   English   中英

如何从asmx Web服务返回纯XML?

[英]How do I return pure XML from asmx web service?

我想要一个带有GetPeople()方法的asmx webservice,它返回以下XML(不是SOAP响应):

<People>

    <Person>
        <FirstName>Sara</FirstName>
        <LastName>Smith</LastName>
    </Person>

    <Person>
        <FirstName>Bill</FirstName>
        <LastName>Wilson</LastName>
    </Person>

</People>

我怎样才能做到这一点?

查看使用[ScriptMethod]属性。

如果您不希望Response位于SOAP信封中,您是否也不想使用SOAP调用Web服务。 例如,您不是创建代理类Web引用等,只是使用http post或调用Web服务?

如果是这样,而不是编写Web服务,请编写ASHX处理程序文件。 然后,您可以简单地将Response.ContentType设置为text / xml并执行Response.Write(XmlDocument.ToString())。 这将返回纯粹的未填充XML以及相关的http标头。

我看到我可以将方法的返回类型设置为XmlDocument。 这似乎有效。

[WebMethod]
public XmlDocument ReturnXml()
{
    XmlDocument dom = new XmlDocument();

    XmlElement people = dom.CreateElement("People");
    dom.AppendChild(people);

    XmlElement person = dom.CreateElement("Person");
    people.AppendChild(person);

    XmlElement firstName = dom.CreateElement("FirstName");
    person.AppendChild(firstName);

    XmlText text = dom.CreateTextNode("Bob");
    firstName.AppendChild(text);



    // load some XML ...
    return dom;
}

您可以使用Soap Extensions来创建/自定义您的需求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM