Я пытаюсь проанализировать и XML-файл с для каждого

#php #xml #parsing

#php #xml #синтаксический анализ

Вопрос:

Это мой xml

 <?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>Main Title</title>
        <link>https://mainlink.com</link>
        <description>Main Description</description>
        <language>en</language>
        <copyright>https://copyright.com</copyright>
        <ttl>5</ttl>
        <item>
            <title>Title One</title>
            <description>Description One</description>
            <pubDate>Mon, 07 Dec 2020 00:00:00  1100</pubDate>
            <link>https://linkone.com</link>
        </item>
        <item>
            <title>Title Two</title>
            <description>Description Two</description>
            <pubDate>Fri, 04 Dec 2020 00:00:00  1100</pubDate>
            <link>https://linktwo.com</link>
        </item>
    </channel>
</rss>
 

Это мой PHP

 <?php

if(!$xml=simplexml_load_file('test.xml')){
    trigger_error('Error reading XML file',E_USER_ERROR);
}

foreach ($xml as $syn) {
    $t = $syn->item->title;
    $d = $syn->item->description;
    $p = $syn->item->pubDate;
    $l = $syn->item->link;

    echo $t.'<br>';
    echo $d.'<br>';
    echo $p.'<br>';
    echo $l.'<br>';
}

?>
 

Это то, что отображается при запуске php

Заголовок Один Описание Один Пн, 07 Дек 2020 00:00:00 1100 https://linkone.com

Мне нужно повторить каждый элемент, чтобы я получил:

Заголовок Один Описание Один Пн, 07 Дек 2020 00:00:00 1100 https://linkone.com

Заголовок два Описание Два Пн, 07 Дек 2020 00:00:00 1100 https://linktwo.com

Любые предложения будут оценены, я искал и безуспешно пытался.

Заранее спасибо.

Ответ №1:

В соответствии с вашей структурой xml, правильный цикл:

 foreach ($xml->channel->item as $syn) {

    $t = $syn->title;
    $d = $syn->description;
    $p = $syn->pubDate;
    $l = $syn->link;

    echo $t.'<br>';
    echo $d.'<br>';
    echo $p.'<br>';
    echo $l.'<br>';

}