【问题标题】:Extract some CDATA from a xml file with PHP使用 PHP 从 xml 文件中提取一些 CDATA
【发布时间】:2019-09-24 04:18:20
【问题描述】:

我必须从 xml 文件中提取一些数据。 在这个文件中有一些标签包含 CDATA 内容,我不尝试提取这些内容。

文件是这样的:

<treeplat>
<ad>
<id>965192-VR</id>
<region>VT</region>
<description>
<![CDATA[
Orte scalo. Vicinissimo alla stazione, in zona tranquilla e panoramica, proponiamo appartamento di recente costruzione così composto: ingresso, salone con ampio angolo cottura e balcone, disimpegno, camera matrimoniale con balcone, cantina e posto auto.
]]>
</description>
<pictures>
<picture>
<picture_url>
<![CDATA[
http://www.immobile.net/media/foto/1440/9f352078-885d-4281-a36d-1d22b3cbdcd9-x.jpg
]]>
</picture_url>
</picture>
<picture>
<picture_url>
<![CDATA[
http://www.immobile.net/media/foto/1440/992a5c0f-62dd-48f2-8c41-9b8ee9e06ca9-x.jpg
]]>
</picture_url>
</picture>
<picture>
<picture_url>
<![CDATA[
http://www.immobile.net/media/foto/1440/a61b4705-ed0a-494b-86fc-e92bb4c916e7-x.jpg
]]>
</picture_url>
</picture>
<picture>
<picture_url>
<![CDATA[
http://www.immobile.net/media/foto/1440/d1817d53-51fa-43dc-baf9-d3457963e694-x.jpg
]]>
</picture_url>
</picture>
<picture>
<picture_url>
<![CDATA[
http://www.immobile.net/media/foto/1440/8299cd3e-f253-4c83-9629-fb77131a2efb-x.jpg
]]>
</picture_url>
</picture>
</pictures>
</ad>
</treeplat>

我是这样解析xml文件的:

$xml = simplexml_load_file(storage_path('app'.DIRECTORY_SEPARATOR.'public'.DIRECTORY_SEPARATOR.$percorso_file.'test.xml')); 
foreach ($xml->ad as $immobile) {
...
}

我的问题是标签。我尝试仅使用以下代码提取第一个:

$picture_url_1 = (string)$immobile->pictures->picture->picture_url

但我不会尝试提取每个图片网址。

如何解析所有图片标签?

非常感谢!

【问题讨论】:

    标签: php xml simplexml


    【解决方案1】:

    您正在循环错误的变量。你需要的是:

    $pictures = $xml->ad->pictures->picture;
    foreach ($pictures as $picture) {
        echo $picture->picture_url;
    }
    

    (你可以用你需要的任何命令替换echo

    【讨论】:

      【解决方案2】:

      Gilad 差点吃到了!

      $pictures = $xmlData->ad->pictures;
      foreach($pictures as $picture)
      {
         foreach($picture as $pic)
         {
            echo (string) $pic->picture_url;
         }
      }
      

      https://3v4l.org/990NR

      【讨论】:

      • 虽然第一个 foreach 实际上不需要,但这会起作用。请参阅我编辑的答案
      猜你喜欢
      • 2011-07-10
      • 1970-01-01
      • 2018-08-02
      • 2020-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-11
      • 1970-01-01
      相关资源
      最近更新 更多