문제

XML을 반환하려고 할 때 모든 사람이 XMLDocument를 반환하는 방법을 계속 읽습니다. RAW XML을 문자열로 반환하는 방법이 있습니까? XML이 포함 된 문자열을 반환하는 많은 웹 서비스 (다른 사람들이 작성)를 사용했습니다. XMLDocument를 반환하면 .NET에없는 사용자가 해당 메소드가 어떻게 소비됩니까?

RAW XML을 랩핑하지 않고 문자열로 반환하는 방법은 무엇입니까? <string></string>?

감사!

도움이 되었습니까?

해결책

.NET 웹 서비스에서 가장 먼저 이해하는 것은 SOAP 프로토콜을 사용했다는 것입니다. 즉, 웹 메소드를 통해 반환하는 유형은 XML로 직렬화됩니다. 따라서 반환 된 모든 객체는 발신자에게 전달되는 XML 문자열입니다.

여전히 XML을 실제 문자열 값으로 반환하려는 경우 웹 사이트 내에서 다음과 같이 서버 측 메소드를 만듭니다.

[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);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top