Создание XML с помощью SimpleXMLElement

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

Вы можете показать нам сгенерированный xml?

Med 18.05.2018 11:15

Невозможно выполнить репликацию с использованием опубликованного вами кода: eval.in/1006454. <RoomStayCandidates> добавлен под элементом <AvailRequestSegment>, как и ожидалось.

iainn 18.05.2018 11:23

Проверьте XML, созданный для моего изображения кода, пожалуйста

Abdul Rahman 18.05.2018 11:39

Не могли бы вы редактировать включить минимальный воспроизводимый пример: фрагмент кода, вывод, который вам нужен, этот фрагмент кода для генерации, и вывод (как текст, а не ссылку на изображение), который этот фрагмент кода на самом деле генерирует. В текущем примере того, что вам нужно сгенерировать, много контента, которого нет в опубликованном вами коде.

IMSoP 18.05.2018 11:55
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
46
1

Ответы 1

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

Это сработало. Спасибо.

Другие вопросы по теме