【问题标题】:PHP/XML feed reader where to start?PHP/XML 提要阅读器从哪里开始?
【发布时间】:2016-04-14 00:45:59
【问题描述】:

我有一个关于 XML 提要的问题。

有一个网站提供数据,他们给了我 2 个文件的 2 个链接

  • 文件 1:Cars_docu.atom
  • 文件 2:Cars.atom

文件1的日期是这样的

 <entry>
<author>
  <name />
</author>
<f:name>Name</f:name>
<f:description>Product name</f:description>

第二个文件是这样的

 <entry>
<title>Volvo</title>
<link rel="alternate" href="#1" />
<author>
  <name />
</author>
<id>237370</id>
<updated>2015-08-17T11:44:32Z</updated>
<f:name>Volvo Lamp</f:name>

据我了解,第一个文件包含字段的名称,第二个包含数据

我的问题是使用 PHP 文件从两个文件中提取此信息并将它们收集到一个页面中的方法是什么?

并且在第二个文档中有一个 10000 产品,那么我如何只拉一个太平洋产品?

如果你有代码我需要方法我会很高兴或者告诉我从哪里开始

推荐

【问题讨论】:

    标签: php xml feed


    【解决方案1】:

    看一下 SimpleXML 类: http://php.net/manual/en/class.simplexmlelement.php

    采取的方法是使用 file_get_contents 从 XML 页面中提取数据,然后使用 SimpleXML 将其解析为数组。

    例如:

    <?php
    
    $url = "somewebsite.com/Cars.atom";
    
    $file = file_get_contents($url);
    
    $carsArray = new SimpleXMLElement($file);
    
    foreach ($carsArray->entry as $car) {
    
       echo $car->title; // Would display "Volvo"
    
    }
    
    ?>
    

    当我第一次研究已解析为数组的 XML 文档的结构时,我发现使用 print_r() 函数很有用。

    根据上述情况,下一个简单的步骤是加载两个 XML 文档并逐步构建您想要显示的数据。

    编辑如果您想匹配特定项目 假设您希望将汽车名称与沃尔沃匹配,您可以这样做。

    <?php
    
    $url = "somewebsite.com/Cars.atom";
    
    $file = file_get_contents($url);
    
    $carsArray = new SimpleXMLElement($file);
    
    // Need to use an array key to get the element, alternatively can loop through each value
    if($carsArray->entry[0]->title == "Volvo") {
        echo "Car is a Volvo!";
    }
    
    ?>
    

    【讨论】:

    • 非常感谢,这是炉排,但问题是如何携带特定物品?
    • @DarkMarv 查看我的编辑。假设您希望将标题与预定义的值匹配。您基本上可以使用此方法匹配数组中的任何值,您只需要知道您需要走多深等。这也围绕数据的一致性做出了一些假设,即。我假设 entry->title 将永远存在。
    • Grate 这解决了我的问题,但只有最后一个问题有些领域就像 1038184volvo 那么我该如何获取信息在这种情况下,因为这不起作用 ($carsArray->f:name)
    • @DarkMarv 没有查看完整的 XML,我假设它的格式正确。冒号 (:) 表示它正在使用 XML 命名空间。您需要使用 getNamespaces 方法。在 php 文档的注释中查看此示例:php.net/manual/en/simplexmlelement.getnamespaces.php#107562
    • 没问题 - 很乐意提供帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-12
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    相关资源
    最近更新 更多