<?php
$xml =new SimpleXMLElement('<OTA_HotelAvailRQ></OTA_HotelAvailRQ>');
$xml->addChild("AvailRequestSegments");
$AvailRequestSegment = $xml->addChild("AvailRequestSegment");
$StayDateRange = $AvailRequestSegment->addChild("StayDateRange");
$StayDateRange->addAttribute("Duration", "P2N");
$StayDateRange->addAttribute("Start", $Start);
$StayDateRange->addAttribute("End", $End);
$RoomStayCandidates = $AvailRequestSegment->addChild("RoomStayCandidates");
$RoomStayCandidates->addAttribute("123", "321");
$HotelSearchCriteria = $AvailRequestSegment->addChild("HotelSearchCriteria");
echo $xml->asXML();
?>
XML, который мне нужно сгенерировать,
<OTA_HotelAvailRQ>
<AvailRequestSegments>
<AvailRequestSegment>
<StayDateRange Duration = "P2N" Start = "2018-10-17+03:00" End = "2018-10-19+03:00" />
<RoomStayCandidates>
<RoomStayCandidate Quantity = "1">
<GuestCounts IsPerRoom = "true">
<GuestCount Count = "2" AgeQualifyingCode = "10" />
</GuestCounts>
</RoomStayCandidate>
</RoomStayCandidates>
<HotelSearchCriteria>
<Criterion ExactMatch = "false">
<Position />
<Address FormattedInd = "true">
<CityName>Athens Center</CityName>
<County>'.$Country.'</County>
<CountryName Code = "GR" />
</Address>
</Criterion>
</HotelSearchCriteria>
</AvailRequestSegment>
</AvailRequestSegments>
</OTA_HotelAvailRQ>
Но всякий раз, когда я добавляю дочерний узел [RoomStayCandidates] к $AvailRequestSegment, он добавляется как дочерний узел к $StayDateRange.
XML, сгенерированный для моего кода, XML, созданный для моего кода
Я считаю, что мой код правильный. но я не получаю точного результата. Пожалуйста, помогите в этом отношении. TIA
Невозможно выполнить репликацию с использованием опубликованного вами кода: eval.in/1006454. <RoomStayCandidates> добавлен под элементом <AvailRequestSegment>, как и ожидалось.
Проверьте XML, созданный для моего изображения кода, пожалуйста
Не могли бы вы редактировать включить минимальный воспроизводимый пример: фрагмент кода, вывод, который вам нужен, этот фрагмент кода для генерации, и вывод (как текст, а не ссылку на изображение), который этот фрагмент кода на самом деле генерирует. В текущем примере того, что вам нужно сгенерировать, много контента, которого нет в опубликованном вами коде.






<?php
$xml =new SimpleXMLElement('<OTA_HotelAvailRQ></OTA_HotelAvailRQ>');
$xml->addChild("AvailRequestSegments");
$AvailRequestSegment = $xml->addChild("AvailRequestSegment");
$StayDateRange = $AvailRequestSegment->addChild("StayDateRange");
$StayDateRange->addAttribute("Duration", "P2N");
$StayDateRange->addAttribute("Start", $Start);
$StayDateRange->addAttribute("End", $End);
$RoomStayCandidates = $AvailRequestSegment->addChild("RoomStayCandidates");
$RoomStayCandidates->addAttribute("123", "321");
$HotelSearchCriteria = $AvailRequestSegment->addChild("HotelSearchCriteria");
echo $xml->asXML();
?>
Это сработало. Спасибо.
Вы можете показать нам сгенерированный xml?