【问题标题】:how do I use my php file to attach an active url to my output (XML) file如何使用我的 php 文件将活动 url 附加到我的输出 (XML) 文件
【发布时间】:2018-02-15 12:52:17
【问题描述】:

我有一个相当简单的 php 文件,它试图创建一个 XML 文档。我正在尝试从 mysql 数据库中提取 URL,以显示在我创建的 XML 文档中。

我似乎无法弄清楚为什么我的网址在没有 xlink 信息的情况下会被忽略。即mysql数据库访问成功但xml文档中只创建了标题和描述信息。

当我添加 xlink 信息时,文档根本没有给出任何输出。代码如下。

<?php header('Content-Type: text/xml'); ?>
<?php echo '<?xml version="1.0" encoding="utf-8"?>'; ?>
<rss version="2.0">
    <channel xmlns:xlink="http://www.w3.org/1999/xlink>
        <title>METHUZALA.COM</title>
        <link xlink:type="simple" xlink:href="http://www.methuzala.com">http://www.methuzala.com</link>
        <description>UPDATE: Articles Found and Added</description>
        <language> en-us </language>

        <?php 
            require('php/includes/path.php');
            $conn= mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME );
            $query="SELECT title, short_title, article_url, short_description from  news_article";
            $data = mysqli_query($conn,$query);
            while ($row = mysqli_fetch_array($data))  {
                echo '<item">';
                echo '<title>'.  $row['title']. '</title>';
                echo '<wurl xlink:type="simple" xlink:href="'.$row['article_url'].'" xlink:show="new">TESTING'.'</wurl>';
                echo '<description>'. $row['short_description']. '</description>';
                echo '</item>';
            } //while-end of file
            mysqli_close($conn);
            echo '</item>';
        ?>
    </channel>
</rss>    

【问题讨论】:

  • 忽略它是什么意思?如果您查看生成的 XML 文件,您没有看到它们吗?
  • 输出完全缺少链接信息。而不是 3 行输出,只有两行。
  • 我正在上传 5 个 jpg 文件,它们是 php 代码的屏幕截图,以及来自 firefox、chrome(2) 和 safari 浏览器的三个输出。
  • 您正在网络浏览器中查看输出?它们用于查看 HTML,而不是 XML。
  • 这些浏览器内置了 rss 阅读器。所以输出应该是从 php 文件创建的 rss 格式的文本。

标签: php mysql xml url xlink


【解决方案1】:

当你打开&lt;item&gt;标签时,你有一个额外的引号......

echo '<item">';

应该是

echo '<item>';

这将通过引用数据导致所有类型的组合。

【讨论】:

  • 谢谢。我删除了引用并发现了一些有趣的东西。它适用于某些浏览器,但不适用于其他浏览器。
【解决方案2】:

我欢迎任何可能有帮助的意见。我删除了 xlink 信息,这段代码产生的结果因浏览器而异。

在 Chrome 中:它提供正确的 rss XML 文件输出,但没有新闻源输出。

在 Safari 中:它提供正确的新闻源输出,但未格式化。这是一大段。

在 Firefox 中:它给出了正确的频道第一行(新闻源的标题、新闻源的描述,但在 xml 输出中没有显示链接或元素。元素都是空白的。

<?php header('Content-Type: text/xml'); 
echo '<?xml version="1.0" encoding="utf-8"?>'; ?>
<rss version="2.0">
    <channel>
        <title>METHUZALA.COM</title>
        <link>http://www.methuzala.com</link>
        <description>UPDATE: Articles Found and Added</description>
        <language> en-us </language>

        <?php 
            require('php/includes/path.php');
            $conn= mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME );
            $query="SELECT title, article_url, short_description from  news_article";
            $data = mysqli_query($conn,$query);
            while ($row = mysqli_fetch_array($data))  {
                $title=$row['title'];
                $wurl=$row['article_url'];
                $description=$row['short_description'];
        ?>
        <element> 
            <title><?php echo $title; ?></title>
            <link><?php echo $wurl; ?></link>
            <description><?php echo $description; ?></description>
        </element>
        <?php
        }
        mysqli_close($conn);
        ?>
    </channel>
</rss>

firefox output safari output

【讨论】:

  • 你能给出输出的样本吗?
  • @nigel ren :将 safari 和 firefox 的输出添加到第二个答案。我只能附上我的状态的两个文件。它们是代码最底部的链接。
  • 这是问题的答案还是问题的延续?
  • 在他回答我的问题后,我向他介绍了我为他的审查所做的更改......他要求提供样本输出
  • @Rod 如果这是对问题的澄清,则应将其编辑到问题中,而不是作为答案发布。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-25
  • 1970-01-01
  • 2012-08-29
  • 2014-08-17
  • 2017-03-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多