2010-08-21 9 views
0

그냥 문자열이 아닌 함수가 호출 될 때 SOAP에서 다음 XML을 반환하고 싶습니다. 이런 식으로 포맷 된 XML을 리턴하는 많은 다른 함수가 있습니다. 함수가 리턴하는 것을 정의 할 수있는 방법이 있습니까? 내 자신의 데이터 형식을 만드는 것처럼?PHP : SOAP 함수 호출에서 XML 반환

<meta> 
    <supplier>Amazon.com</supplier> 
    <datetime>2010/08/21 14:32:40</datetime> 
</meta> 
<results> 
    <result> 
     <manufacturer>Intel</manufacturer> 
     <itemno>8236476234</itemno> 
     <prices> 
      <price> 
       <quantity>10</quantity> 
       <cost>$1.20</cost> 
      </price> 
      <price> 
       <quantity>100</quantity> 
       <cost>$0.80</cost> 
      </price> 
     </prices> 
    </result> 
    <result> ... </result> 
</results> 
+2

XML은 데이터 유형이 아닙니다. 그것은 문서 형식입니다. XML 문서를 출력 할 때 그것은 단지 문자열 일뿐입니다. 'SimpleXMLElement' 객체를 반환 할 수는 있지만 XML이 아닙니다. 이것은 XML을 모델링하고 XML을 조작하는 인터페이스를 제공하는 복잡한 데이터 구조 (같은 목적을 가진 많은 것 중 하나)입니다. –

+0

SOAP 호출에서 XML을 반환하려는 이유가 무엇입니까? 원하는 구조로 클래스를 디자인하면 PHP는 SOAP 호출에서 객체를 뱉어 낼 수 있습니다. XML을 다룰 필요가 없습니다. –

답변

0

가장 좋은 방법은 array에 결과를 넣고 XML로 변환하는 것입니다.

http://rssphp.net/examples/convert_array_to_xml/

그것은 전체 형성 XML에 연관 배열의 거의 모든 종류의 변환 : 여기에 대한 준비가 만든 스크립트입니다.

+0

유효한 XML이 요소 속성을 가질 수 있기 때문에 XML을 간단한 연관 배열로 변환 할 수 없습니다. XML 문서를 조작하는 가장 좋은 방법은 시도 된 진정한 솔루션 인 DOM 또는 SAX와 같은 것을 사용하는 것입니다. 그러나 단순히 XML 데이터를 저장/전송하려는 목적이라면 XML 형식 자체는 이미 완벽하게 실행 가능하고 표준화 된 직렬화 형식입니다. 그것을 다른 데이터 구조로 변환하는 것은 아무런 이점이 없습니다. –

관련 문제