2012-07-27 28 views
-3

我有一个看起来像这样的XML:PHP的SimpleXML获得的图像显示

<gallery server="5"> 
    <image path="http://i.imgur.com/8n5MB.jpg"/> 
    <image path="http://i.imgur.com/TIXL2.jpg"/> 
</gallery> 

我试图让图像使用PHP在一个页面上显示。这是我有:

$xml = simplexml_load_file('./images.xml'); 

echo $xml->getName() . "<br />"; 

foreach($xml->children() as $child) 
    { 
    echo $child->getName() . "<br />"; 
    } 

我的问题是,这只是输出以下

gallery 
image 
image 
image 

我无法找到如何读取标签本身,任何指针的信息的任何信息?谢谢!

+2

我只是好奇,你是否没有尝试过谷歌。 – Matt 2012-07-27 17:58:13

+0

图像路径是一个属性。 – Peon 2012-07-27 18:00:27

+0

需要检查之前发布的人手册,[检查这里](http://www.php.net/manual/en/simplexmlelement.attributes.php#refsect1-simplexmlelement.attributes-examples) – lusketeer 2012-07-27 18:00:38

回答

1

你应该做这样的事情,而不是:

foreach ($xml->children() as $child) 
{ 
    echo '<img src="' . $child['path'] . '" alt="gallery image" />'; 
} 
+0

谢谢这很好,我找不到它主要是因为我不知道它叫什么,我是新来的XML和PHP。 – user1294097 2012-07-28 18:32:15

0

您可以使用XPath选择元素,然后抓住从属性的元素的列表中path属性,像这样:

foreach($xml->xpath('//image') as $image) 
{ 
    $attributes = $image->attributes(); 
    echo $attributes['path'] . "<br />"; 
} 

所以这种循环只会在<image>标签循环。对于每个<image>标签,它会抓取该标签的属性并打印出path属性。

+0

或者你可以走直线对于像'$ xml - > children() - > attributes'这样的变量:) – Peon 2012-07-27 18:02:45

+0

'children()'将是一个SimpleXML元素的数组 - 我认为这不会起作用。 – nickb 2012-07-27 18:04:01

+0

对不起,没有测试,只是快速写出这个想法。这就是为什么我没有发布它作为答案m8 :) – Peon 2012-07-27 18:05:23