Чтение данных из файла XML и печать выбранных данных - PullRequest
0 голосов
/ 22 мая 2019

У меня есть фид блога, который находится в файле XML:

<item>
    <title>Title</title>
    <link>link</link>
    <pubDate>Date</pubDate>
</item>

Я пытаюсь получить и повторить вышеупомянутую информацию, но она не работает. Вот мой подход:

<?php foreach ($results as $index => $record) : ?>
    <div class="col-12">
        <?php 
            echo("
                <a class='item'>
                    <div class='item__card'>
                        $blogAuthor ->item ->link;
                        $blogTitle ->item ->title;
                        $blogDate ->item ->pubDate;
                    </div>
                </a>"
            );
        ?>
    </div>
<?php endforeach; ?>

Куда я иду не так?

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

Используя php, вы пропускаете simplexml_load_string

вот ваш код

<?php

$strxml='<?xml version="1.0" encoding="UTF-8"?>
<rss>
    <item>
        <title>Title 1</title>
        <link>link 1</link>
        <pubDate>Date 1</pubDate>
    </item>
    <item>
        <title>Title 2</title>
        <link>link 2</link>
        <pubDate>Date 2</pubDate>
    </item>
</rss>';

$col = simplexml_load_string($strxml); 
echo '<pre>';
print_r($col);

foreach( $col as $item ){
    $title=$item->title;
    echo $title.'<br />';
}

Вывод:

Заголовок 1 Заголовок 2

0 голосов
/ 22 мая 2019

Предполагая простой XML-файл для демонстрационных целей, вы можете легко достичь цели, используя DOMDocument

$strxml='<?xml version="1.0" encoding="UTF-8"?>
<rss>
    <item>
        <title>Title 1</title>
        <link>link 1</link>
        <pubDate>Date 1</pubDate>
    </item>
    <item>
        <title>Title 2</title>
        <link>link 2</link>
        <pubDate>Date 2</pubDate>
    </item>
</rss>';


$dom=new DOMDocument;
$dom->loadXML( $strxml );

$col=$dom->getElementsByTagName('item');
foreach( $col as $item ){
    $title=$item->childNodes[1]->nodeValue;
    $link=$item->childNodes[3]->nodeValue;
    $pub=$item->childNodes[5]->nodeValue;

    echo $title,$link,$pub,'<br />';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...