在 XML 中下载同名图像 [已关闭]

Download images with the same name in XML [closed]

提问人:Designer015 提问时间:2/21/2023 最后编辑:IMSoPDesigner015 更新时间:2/21/2023 访问量:44

问:


想改进这个问题吗?通过编辑这篇文章添加详细信息并澄清问题。

9个月前关闭。

我正在尝试下载产品图片或获取 XML 格式的文件路径。我在使用同名时遇到了麻烦。谢谢。

XML 文件

-<products>
-<product>
<product_code>AXX-655</product_code>
<product_name>Samsung Led TV</product_name>
-<Images>
<Image>https://max.cloud/37233/products-77d4.jpg</Image>
<Image>https://max.cloud/37233/products-254789.jpg</Image>
<Image>https://max.cloud/37233/products-f010.jpg</Image>
<Image>https://max.cloud/37233/products-8004.jpg</Image>
</Images>
-</product>
-<product>
<product_code>ACH-645</product_code>
<product_name>LG Led TV</product_name>
-<Images>
<Image>https://max.cloud/37233/products-895777.jpg</Image>
<Image>https://max.cloud/37233/products-3652.jpg</Image>
<Image>https://max.cloud/37233/products-k0120.jpg</Image>
</Images>
-</product>
-</products>

我正在尝试按产品ID或产品名称下载产品图片 PHP文件

$xml = simplexml_load_file($xmllocalurl) or die("Error: Cannot create object");
foreach ($xml->children() ->children() as $child) {
    $name = $child->product_name;
    $url = $child->Images->Image;
    $img = 'imgfiles/'.$name.'.jpg';
    $url = $child->product_name;
    file_put_contents($img, file_get_contents($url));
php xml xml 解析 simplexml

评论

2赞 IMSoP 2/21/2023
你能编辑以更清楚地解释问题吗?什么是预期输出/结果,当前输出/结果是什么?

答:

0赞 Jack Fleeting 2/21/2023 #1

由于您正在处理 xml,因此最好使用 xpath 来提取我认为是您的目标数据。

下面只是提供数据;然后,您可以根据需要保存它:

$items = $xml->xpath('//product');
foreach ($items as $item) {
    $name = $item->xpath('./product_name')[0];
    $code = $item->xpath('./product_code')[0];
    $images = $item->xpath('.//Image/text()');
    echo $name," " ,$code," " ;
    foreach ($images as $image) {
      echo $image , " ";
    }
    echo "\r\n";
};

输出(基于示例 XML):

Samsung Led TV AXX-655 https://max.cloud/37233/products-77d4.jpg https://max.cloud/37233/products-254789.jpg https://max.cloud/37233/products-f010.jpg https://max.cloud/37233/products-8004.jpg 
LG Led TV ACH-645 https://max.cloud/37233/products-895777.jpg https://max.cloud/37233/products-3652.jpg https://max.cloud/37233/products-k0120.jpg 

评论

0赞 Jack Fleeting 2/21/2023
@Designer015 不知道他们为什么关闭你的问题,但很高兴它对你有用。另外,请不要忘记接受答案。
0赞 Designer015 2/23/2023
由于我是新会员,我不知道如何充分利用该网站。我应该在哪里接受?
0赞 Jack Fleeting 2/23/2023
@Designer015没关系,我们都去过一次!“要将答案标记为已接受,请单击答案旁边的复选标记,将其从灰色切换为已填写。”