【问题标题】:Display data from external XML feed on website using PHP使用 PHP 在网站上显示来自外部 XML 提要的数据
【发布时间】:2013-04-02 18:58:30
【问题描述】:

我需要在我的网站上显示来自外部 XML 提要的数据,但我完全不知道从哪里开始。获取 XML 提要并将以下元素打印到我的页面中的完整 PHP 代码是什么:

<name></name>
<status></status>
<pin></pin>
<picture>
</picture>
<description></description>
<category name="skills">
  <skill></skill>
</category>
<category name="tools">
  <tool></tool>
  <tool></tool>
  <tool></tool>
</category>
<category name="subjects">
  <subject></subject>
</category>

【问题讨论】:

  • 上面的 XML 格式不正确,因为它缺少声明和根元素(即包含所有其他元素的单个元素/标签)。你有更完整的例子吗?

标签: php xml wordpress xml-parsing


【解决方案1】:

您可以使用名为simplexml_load_string 的php 内置函数以及file_get_contents

这两个函数所做的是将 url xml 提要转换为字符串,然后创建一个存储到 $xml 中的对象。

资源file_get_contents

资源simplexml_load_string

$url = 'yourXMLfeed.xml';
$xml = file_get_contents($url);
$xml = simplexml_load_string($xml);

然后您可以像这样访问&lt;name&gt;&lt;/name&gt; 等内部的数据:

echo $xml-&gt;name 将打印name 标签内的数据。

如果你有一个嵌套的 xml 提要,你也可以像这样使用foreach

foreach($xml as $x):
 echo $x->name
endforeach;

编辑

假设您的每个&lt;tool&gt;&lt;/tool&gt; 都有数据,即:

&lt;tool&gt;Wrench&lt;/tool&gt; &lt;tool&gt;Hammer&lt;/tool&gt; &lt;tool&gt;Screwdriver&lt;/tool&gt;

您可以执行一个快速的foreach 循环来获取数据,如下所示:

foreach($xml->category[1] as $tool) {
    echo $tool.' ';
}

这会与扳手锤螺丝刀相呼应

【讨论】:

  • 好的,谢谢,但是例如,如果有 并且有多个孩子,我如何显示每个
  • 这个可以简化为simplexml_load_file('yourXMLfeed.xml');
  • @AlanCarr 你想显示每个&lt;tool&gt; 还是里面的数据?
  • 他不是还需要一些带有“样式信息”的标题吗?
猜你喜欢
  • 2023-03-03
  • 1970-01-01
  • 2012-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多