在您评论这可能是重复之前,请阅读下面的粗体线.这与SimpleXML无关.
让我首先展示如何布局XML.请忽略名称空间:
?
?
?
?
?
?
?
?
?
?
?
?
?
在hot1下注意:RoomsInformation有RoomInfo.我应该能够发送多个RoomInfo节点.但我正在使用PHP类将数组转换为此对象以通过SOAP提交.
这是我的数组在转换为对象之前:
$param = array(
"Destination" => $destcode,
"HotelCityName" => $city,
"HotelLocationName" => "",
"HotelName" => "",
"CheckIn" => date("Y-m-d", strtotime($checkin)),
"CheckOut" => date("Y-m-d", strtotime($checkout)),
"RoomsInformation" => array (
"RoomInfo" => array(
"AdultNum" => 2,
"ChildNum" => 1,
"ChildAges" => array(
"ChildAge" => array(
"age"=>11
)
)
),
"RoomInfo" => array(
"AdultNum" => 1,
"ChildNum" => 0,
"ChildAges" => array(
"ChildAge" => array(
"age"=>0
)
)
)
),
"MaxPrice" => 0,
"StarLevel" => 0,
"AvailableOnly" => "false",
"PropertyType" => "NotSet",
"ExactDestination" => "false"
);
$param = arrayToObject($param) ;
$obj = new stdClass();
$obj->request=$param;
$result = $test->SearchHotels($obj) ;
问题是在转换为Object之后,只有一个RoomInfo和最后一个.我的想法是因为RoomsInformation数组有两个相同的KEY名称.那么我怎样才能做到这一点呢?
为了您的信息,这里是我使用的SOAP类和arrayToObject函数: