0

我有以下代码:

     $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[] 数组中获取“字符串”

请看附图:

在此处输入图像描述

4

3 回答 3

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

这就是我想要的结果。

于 2012-10-18T05:35:12.017 回答
0

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

$images[$i]['src']
于 2012-10-18T01:17:44.107 回答
0

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

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

"//img@src"

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

于 2012-10-18T00:07:57.057 回答