从XML文件读取数据并打印所选数据

时间:2019-05-22 08:20:29

标签: php xml wordpress rss

我有一个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 :(得分:0)

假设一个简单的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 />';
}

答案 1 :(得分:0)

使用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