【问题标题】:Getting XML element based on attribute value根据属性值获取 XML 元素
【发布时间】:2011-02-04 04:21:52
【问题描述】:

嘿。 我有一个 XML 文件,想使用 PHP 仅显示 medium 大小。 XML 的部分如下所示:

<image size="small">/small23.png</image>
<image size="medium">/medium23.png</image>
<image size="large">/large23.png</image>

我想使用&lt;img src="" /&gt; 在页面上显示图像,但我不确定如何只放置中等图像。在遍历所有其他元素的 forloop 中,我尝试了这个:

if($file->image->attributes()->size == "medium")
   echo "<img src=$file->image />";

但什么也没画出来。

谢谢

【问题讨论】:

    标签: php xml image parsing


    【解决方案1】:

    根据您的示例,我假设您使用的是 SimpleXML,所以试试这个:

    $mediums = $file->xpath("image[@size='medium']");
    if (count($mediums)) {
        echo '<img src="' . (string) $mediums[0] . '" />';
    }
    

    【讨论】:

    • 谢谢!之前没看过xpath方法。
    【解决方案2】:

    
    $done = false;
    foreach($file->image as $img) {
        foreach($img->attributes() as $key => $value) {
            if($key == "size" && $value == "medium") {
                echo "<img src = {$file->image} />";
                $done = true;
                break;
            }
        }
        if($done) { break; }
    }
    
    这可能有效,试试看,让我知道。

    【讨论】:

    • 当你只想从一个特定元素中找到一个已知属性时,执行两个 foreach 循环是完全矫枉过正
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 2021-07-16
    • 2021-05-07
    • 1970-01-01
    相关资源
    最近更新 更多