Foreach 字符串参数 PHP

Foreach string parameter PHP

提问人:Sergei 提问时间:11/9/2023 最后编辑:Sergei 更新时间:11/9/2023 访问量:50

问:

我像这样解析XML

<offer internal-id="3">
<floor>2</floor>
<name>Building 1</name>
<image>picture.jpg</image>
<image tag="plan">plan.png</image>
</offer>

我有这样的功能

$file = simplexml_load_file("feed.xml");


if($file === FALSE)
die("Error");
$xml = [];


foreach($file->offer as $offer)
    {
    if((string)$offer->{'location'}->{'address'} == 'Building 1')
        {
        $flat["floor"] = (string)$offer->{'floor'};
        echo $flat['png'];
        $xml[] = $flat;
        }
    }

它工作正常,我可以获得“floor”参数,但是我如何变量提供“internal-id”并仅使用标签“plan”获取变量图像?

PHP XML 解析

评论

0赞 Chris Haas 11/9/2023
请展示您如何将 XML 解析为对象
0赞 Sergei 11/9/2023
$file = simplexml_load_file(“饲料.xml”);if($file === FALSE) die(“错误”);$xml = [];foreach($file->offer as $offer) { if((string)$offer->{'location'}->{'address'} == 'Building 1') { $flat[“floor”] = (string)$offer->{'floor'}; echo $flat['png']; $xml[] = $flat; } }
1赞 Chris Haas 11/9/2023
请编辑您的原始问题并将该代码放入其中
0赞 Sergei 11/9/2023
做。我正在尝试做这样的事情 $flat[“png”] = (string)$offer->{'image'}['tag=“plan”'];
2赞 ADyson 11/9/2023
所以基本上你的问题是关于如何使用simplexml获取属性

答:

0赞 Rob Eyre 11/9/2023 #1

您可以使用简单的属性数组访问来获取:internal-id

$flat['internal-id'] = (string) $offer['internal-id'];

对于计划,可以使用 xpath 表达式:

$flat['png'] = (string) $offer->xpath('image[@tag="plan"]')[0];

评论

0赞 Sergei 11/10/2023
非常感谢