簡體   English   中英

使用PHP生成XML

[英]Generate XML using PHP

我有以下需要從中生成XML的PHP​​代碼。

$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>

任何幫助將不勝感激。

謝謝。

<?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'); 
?>

我認為您可以自己編寫循環;)PS PHP 5+

首先,您的xml結構不好。
應該是這樣的:

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

迭代獲得的結果,並通過壓縮形成所需的xml。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM