【问题标题】:Reading data from XML file and printing selected data从 XML 文件中读取数据并打印所选数据
【发布时间】:2019-05-22 08:20:29
【问题描述】:

我有一个 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; ?>

我哪里错了?

【问题讨论】:

  • 这是老式的 php 方式,我不会像那样混合 html 和 php。将它们分开,以便将来更容易阅读和理解

标签: php xml wordpress rss


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-28
      • 1970-01-01
      • 1970-01-01
      • 2017-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-05
      相关资源
      最近更新 更多