访问SimpleXMLElement对象的属性

时间:2012-10-17 23:49:29

标签: php xml arrays xpath simplexml

我有以下代码:

     $doc=new DOMDocument(); 
     $doc->loadHTML($content); 
     $xml=simplexml_import_dom($doc); // just to make xpath more simple 
     //$images=$xml->xpath('(//img[@class = "thumbimage"])[1]');

     for($x=1;$x<=5;$x++)
     {
                      $images[] = $xml->xpath('(//img[@class = "thumbimage"])['.$x.']'); 

     }

我转储$ images我得到这种类型的数组看到底部的屏幕截图

  [array](unknown name)
   - [array]0
     -[SimpleXMLElement Object] 0
      -Properties
        -[array]@attributes
              [string]src = "thestring"
      -Methods
        __construct
        __addAttribute etc

我想从每个$ images []数组

中获取“thestring”

请参阅附图:

enter image description here

3 个答案:

答案 0 :(得分:0)

我认为你只需要正确的XPath,如果你发布了你正在处理的XML,我会更容易给出(我只能从你提供的图像中推断出一些东西)。无论如何你正在使用img [@class ='...']所以我假设我们正在处理的那个元素名称被称为img

在这种情况下,您需要的xpath是

"//img@src"

使用@选择所有img元素的属性。 http://www.w3schools.com/xpath/xpath_syntax.asp

答案 1 :(得分:0)

您可以将属性作为数组元素访问:

$images[$i]['src']

答案 2 :(得分:0)

  for($x=0;$x<=5;$x++)
               {
                $k = $x + 1;
                $images[] = $xml->xpath('(//img[@class = "thumbimage"])['.$k.']'); 
                $url[] = (string)$images[$x][0]['src'];
               }

这就是我想要的结果。