2012-10-23 4 views
0

X에서 호스팅되는 하나의 웹 사이트가 열람 될 때 순전히 XML을 반환하는 URL을 게시하는 시나리오는 어떻게 설정합니까?xml을 전송하기 위해 웹 사이트 사용

다른 웹 페이지가이 URL을 클릭하면 XML을 개체로로드합니다. 그래서

내가 http://www.xml.com/document.aspx?id=1

같은 URL 또 다른 사이트가 위의 페이지에서 응답을 얻을 수 WebResponse를하고 WebRequest 클래스 객체를 사용하려면, 그래서 난 그냥 객체를 채우기 위해 XML을 사용할 수있는 응답이 좋은 XML되고 싶어요 .

나는 뭔가를 얻을 수 있었지만 응답에는 페이지를 렌더링하는 데 필요한 모든 HTML이 포함되어 있었고 실제로 XML을 응답으로 원했습니다.

+0

가능한 중복 : http://stackoverflow.com/questions/2295892/how-can-i-output-xml-from-code-behind-in-an-aspx-file – RemarkLima

답변

0

아마도이 최선의 방법은 HttpHandler/ASHX 파일을 사용하는 것일 수 있습니다. 그러나 페이지로 처리하고 싶다면 완벽하게 가능합니다. 두 가지 핵심 사항은 다음과 같습니다.

  1. 빈 페이지를 사용하십시오. ASPX의 마크 업에서 원하는 것은 모두 < % Page ... %> 지시어입니다.
  2. 는 XML로 응답 스트림 의 ContentType을 설정 - 당신이 자체가 당신에게 달려 XML을 생성하지만, XML 객체 그래프를 나타내는 경우, 당신은 System.Xml.Serialization에서 XmlSerializer을 (사용할 수있는 방법 Response.ContentType = "text/xml"

네임 스페이스)를 사용하여 XML을 직접 응답 스트림에 작성합니다. 이미 XML이있는 경우이의 ContentType을 설정 한 후

using System.Xml.Serialization; 

// New up a serialiser, passing in the System.Type we want to serialize 
XmlSerializer serializer = new XmlSerializer(typeof(MyObject)); 

// Set the ContentType 
Response.ContentType = "text/xml"; 

// Serialise the object to XML and pass it to the Response stream 
// to be returned to the client 
serialzer.Serialize(Response.Output, MyObject); 

후, 당신은 응답 스트림에 기입 한 후 종료하고 스트림을 플러시해야합니다.

// Set the ContentType 
Response.ContentType = "text/xml"; 

Response.Write(myXmlString); 

Response.Flush(); 
Response.End(); 
+0

그럼 난 이미 가지고있는 XML 난 그냥 문자열을 다른 쪽 끝으로 가져오고 싶다. 아무런 상상력도 인터넷을 통해 문자열을 보내지 않고 xml이 될 것이다. 건배 –

+0

나는 무서워 나는 이걸 어떻게 문자열을 보내는데 사용하는지 알지 못한다. –

+0

@RobertHancliff 간단한 XML 문자열 출력에 대한 정보로 업데이트 – PhilPursglove

관련 문제