Php 基于属性值获取XML元素

Php 基于属性值获取XML元素,php,xml,image,parsing,Php,Xml,Image,Parsing,嘿。 我有一个XML文件,希望使用PHP仅显示中等大小。XML的一部分如下所示: <image size="small">/small23.png</image> <image size="medium">/medium23.png</image> <image size="large">/large23.png</image> /small23.png /medium23.png /large23.png 我想使用在页

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

<image size="small">/small23.png</image>
<image size="medium">/medium23.png</image>
<image size="large">/large23.png</image>
/small23.png
/medium23.png
/large23.png
我想使用
在页面上显示图像,但我不确定如何仅放置中间图像。在遍历所有其他元素的forloop中,我尝试了以下方法:

if($file->image->attributes()->size == "medium")
   echo "<img src=$file->image />";
if($file->image->attributes()->size==“medium”)
回声“图像/>”;
但是什么也没有画出来

谢谢



$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; }
}
$done=false;
foreach($file->image as$img){
foreach($img->attributes()作为$key=>$value){
如果($key==“size”&&$value==“medium”){
回声“image}/>”;
$done=true;
打破
}
}
如果($done){break;}
}
这可能行得通,请尝试一下并让我知道。


$done=false;
foreach($file->image as$img){
foreach($img->attributes()作为$key=>$value){
如果($key==“size”&&$value==“medium”){
回声“image}/>”;
$done=true;
打破
}
}
如果($done){break;}
}

这可能行得通,请尝试一下并让我知道。

基于您的示例,我假设您使用的是SimpleXML,因此请尝试以下方法:

$mediums = $file->xpath("image[@size='medium']");
if (count($mediums)) {
    echo '<img src="' . (string) $mediums[0] . '" />';
}
$mediums=$file->xpath(“image[@size='medium']);
如果(计算($介质)){
回声';
}

基于您的示例,我假设您使用的是SimpleXML,因此请尝试以下方法:

$mediums = $file->xpath("image[@size='medium']");
if (count($mediums)) {
    echo '<img src="' . (string) $mediums[0] . '" />';
}
$mediums=$file->xpath(“image[@size='medium']);
如果(计算($介质)){
回声';
}

当您只想从一个特定元素中查找一个已知属性时,执行两个foreach循环是完全的overkill当您只想从一个特定元素中查找一个已知属性时,执行两个foreach循环是完全的overkill谢谢!以前没有看过xpath方法。谢谢!以前没有看过xpath方法。