2014-04-12 2 views
0

XML을 생성해야하는 다음 PHP 코드가 있습니다.PHP를 사용하여 XML 생성

$hparams["SiteName"]=""; 
$hparams["AccountCode"]=""; 
$hparams["UserName"]='xxxx'; 
$hparams["Password"]='xxxx'; 
$client_header = new SoapHeader('url','AuthenticationData',$hparams,false); 
$cliente = new SoapClient($wsdl); $cliente->__setSoapHeaders(array($client_header)); 
$opta=array(); 
$opta["Search"]["request"]["Origin"]="MAA"; 
$opta["Search"]["request"]["Destination"]="BOM"; 
$opta["Search"]["request"]["DepartureDate"]="2014-05-20T00:00:00"; 
$opta["Search"]["request"]["ReturnDate"]="2014-05-22T00:00:00"; 
$opta["Search"]["request"]["Type"]="OneWay"; 
$opta["Search"]["request"]["CabinClass"]="All"; 
$opta["Search"]["request"]["PreferredCarrier"]=""; 
$opta["Search"]["request"]["AdultCount"]="1"; 
$opta["Search"]["request"]["ChildCount"]="0"; 
$opta["Search"]["request"]["InfantCount"]="0"; 
$opta["Search"]["request"]["SeniorCount"]="0"; 
$opta["Search"]["request"]["IsDirectFlight"]="true"; 
$opta["Search"]["request"]["PromotionalPlanType"]="Normal"; 
$h=array();  
$h= (array)$cliente->__call('Search',$opta); 

PHP에서 위의 변수의 XML을 어떻게 생성합니까?

형식은 어떤 도움에 감사 할 것

<xml> 
<credential> 
<Sitename>sitename</Sitename> 
<AccountCode>ACC Code</AccountCode> 
</credentials> 

<Data> 
<Origin>MAA</Origin> 
<Destination>BOM</Destination> 
</Data> 
</xml> 

해야한다.

감사합니다.

+0

wsdl의 URL을 공유 할 수 있습니까? – hindmost

+0

매개 변수로 배열을 전달하는 기능이 작동하지 않습니다? – hindmost

답변

2
<?php 
ini_set('error_reporting', E_ALL); 
$dom = new DomDocument('1.0'); // making xml 

$credentials = $dom->appendChild($dom->createElement('Credentials')); // adding root element <credentials> 

$sitename  = $credentials->appendChild($dom->createElement('Sitename')); // adding element <sitename> in <credentials> 
$accountcode = $credentials->appendChild($dom->createElement('AccountCode')); // adding element <accountcode> in <credentials> 

$sitename->appendChild($dom->createTextNode('sitename')); // adding text in <sitename> 
$accountcode->appendChild($dom->createTextNode('ACC Code')); // adding text in <accountcode> 

$data   = $dom->appendChild($dom->createElement('Data')); 
$origin   = $data->appendChild($dom->createElement('Origin')); 
$destination = $data->appendChild($dom->createElement('Destination')); 

$origin->appendChild($dom->createTextNode('MAA')); 
$destination->appendChild($dom->createTextNode('BOM')); 

$dom->formatOutput = true; // generating xml 

// generating XML as string or file 
$test1 = $dom->saveXML(); 
$dom->save('test1.xml'); 
?> 

난 당신이 스스로 루프를 작성할 수 생각 PHP 5+

0

먼저 XML이 잘 구성되어 있지 않습니다.

<xml> 
     <credentials> 
      <Sitename>sitename</Sitename> 
      <AccountCode>ACC Code</AccountCode> 
      <Data> 
       <Origin>MAA</Origin> 
       <Destination>BOM</Destination> 
      </Data> 
     </credentials> 
<credentials> 
    ... 
</credentials> 
    </xml> 

대하여 반복 얻어진 결과와 concating 의해 필요한 XML을 형성한다 : 마찬가지로
그것은이어야한다. P.S.)