theblackpost
@theblackpost

Как вставить тег в XML (simplexml)?

Необходимо вставить новый тег со статичным значением в XML:

<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE yml_catalog SYSTEM "shops.dtd">
<yml_catalog date="2020-02-17 16:45">
    <shop>
        <offers>
            <offer id="2164" available="true" >
                <url>https://</url>
                <price>779</price>
                <currencyId>RUR</currencyId>
            </offer>
            <offer id="2165" available="true" >
                <url>https://2</url>
                <price>780</price>
                <currencyId>RUR</currencyId>
            </offer>
        </offers>
    </shop>
</yml_catalog>

Надо добавить статичное:

<delivery-options>
<option cost="300" days="4" order-before="18"/>
</delivery-options>

Делаю

$xml = simplexml_load_file('https://URI');
foreach ($xml->shop->offers->offer as $offer) {
    $name = $offer->name;
    $details = $offer->addChild('delivery-options');
}

Тег добавляется как: <delivery-options/>

Не пойму почему он не парный тег, и как в него добавить <option cost="300" days="4" order-before="18"/>

Возможно ли как-то вставить простой строкой? Или как-то ещё?
  • Вопрос задан
  • 249 просмотров
Решения вопроса 1
theblackpost
@theblackpost Автор вопроса
В общем, вот так
foreach ($xml->shop->offers->offer as $offer) {
        $name = $offer->name;
        $details = $offer->addChild('delivery-options',' ');
        $details_option = $details->addChild('option');
        $details_option->addAttribute('cost', '300');
        $details_option->addAttribute('days', '4');
    }


echo $xml->asXML();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы