public function arrToxml($arr,$dom = 0,$item=0){
if(!$dom) $dom = new DOMDocument("1.0",'utf-8');
$dom -> formatOutput = true;//格式xml输出 有换行什么的
if(!$item){
$item = $dom->createElement("AvailabilityRequest");
$dom->appendChild($item);
$item->setAttribute('session_id',session_id());//设置属性
}
foreach ($arr as $key=>$val){
if (is_array($val)){
$itemx = $dom->createElement($key);
$item->appendChild($itemx);
if(in_array($key,['Contact','Adult','Children'])){
if($key == 'Contact'){
foreach ($val as $k=>$v){
$itemx->setAttribute($k,$v);
}
}else{
$item->removeChild($itemx);
foreach ($val as $k=>$v){
$itemx = $dom->createElement($key);
$item->appendChild($itemx);
foreach ($v as $kk => $vv) {
$itemx->setAttribute($kk,$vv);
}
}
}
}else {
$this->arrToxml($val, $dom, $itemx);
}
}else {
$itemx = $dom->createElement($key,$val);
$item->appendChild($itemx);
}
}
return $dom->saveXML();
}
$xmlArray = [
'Authentication' => [
'OrgID' => $orgId,
'UserName' => $userName,
'AuthKey' => $authKey,
'Version' => $version
],
'HotelRequest' => [
'ReqType' => 'booking',
'CityID' => '3',
'CheckInDate' => '2016-03-10',
'CheckOutDate' => '2016-03-11',
'HotelID' => '2237',
'RateCode' => 'CZWUyZTU1ZTljZDViMzc4ODdmZTZhNjZ',
'RoomCount' => '1',
'Nationality' => 'CN',
'Adult' => '2',
'Children' => '0',
'ChildrenAge' => '22',
'Currency' => 'CNY',
'TotalAmount' => '963.36',
'ConfirmType' => '1',
'Contact' => [
'name' => 'ZHANG SAN',
'phone' => '13111111111',
'email' => 'email@yahoo.cn',
'telephone' => '010-12341332'
],
'Rooms' => [
'Room' => [
'Adult' =>[
[
'last' => 'ZHANG',
'first' => 'XIAOHONG'
],
[
'last' => 'LI',
'first' => 'XIAOMING'
],
],
'Children' =>[
[
'last' => 'L3',
'first' => 'XIAOLIE'
]
]
]
],
'GuestRemarks' => '<!*CDATA*apply for two bed rooms++>',
'PartnerBookingID' => 'SN1234567890'
]
];
$xmlData = $this->arrToxml($xmlArray);
echo $xmlData;
<?xml version="1.0" encoding="utf-8"?>
<AvailabilityRequest session_id="9hl6m3msroqhlv26jv9qkkple1">
<Authentication>
<OrgID>111</OrgID>
<UserName>222</UserName>
<AuthKey>333</AuthKey>
<Version>1.0</Version>
</Authentication>
<HotelRequest>
<ReqType>booking</ReqType>
<CityID>3</CityID>
<CheckInDate>2016-03-10</CheckInDate>
<CheckOutDate>2016-03-11</CheckOutDate>
<HotelID>2237</HotelID>
<RateCode>CZWUyZTU1ZTljZDViMzc4ODdmZTZhNjZ</RateCode>
<RoomCount>1</RoomCount>
<Nationality>CN</Nationality>
<Adult>2</Adult>
<Children>0</Children>
<ChildrenAge>22</ChildrenAge>
<Currency>CNY</Currency>
<TotalAmount>963.36</TotalAmount>
<ConfirmType>1</ConfirmType>
<Contact name="ZHANG SAN" phone="13111111111" email="email@yahoo.cn" telephone="010-12341332"/>
<Rooms>
<Room>
<Adult last="ZHANG" first="XIAOHONG"/>
<Adult last="LI" first="XIAOMING"/>
<Children last="L3" first="XIAOLIE"/>
</Room>
</Rooms>
<GuestRemarks><!*CDATA*apply for two bed rooms++></GuestRemarks>
<PartnerBookingID>SN1234567890</PartnerBookingID>
</HotelRequest>
</AvailabilityRequest>
04-06
422
06-25
471
06-10
5101
04-27
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交