2012-04-24 76 views
0

我看到了几个类似的问题,但没有找到我正在寻找的确切答案。这可能是我正在寻找的功能不存在。作为字符串数组的PHP xpath结果

如果我做一个xpath查询导致一个对象数组,但每个对象只有一个值,一个字符串,我想快速转换成一个字符串数组。很明显,我可以对对象进行foreach并将字符串值推送到一个新数组中,但如果有一个内置函数,我没有想到,请让我知道。

例如:

array(3) { 
    [0]=> 
    object(SimpleXMLElement)#24 (1) { 
    [0]=> 
    string(20) "Network Media Player" 
    } 
    [1]=> 
    object(SimpleXMLElement)#25 (1) { 
    [0]=> 
    string(12) "Music Player" 
    } 
    [2]=> 
    object(SimpleXMLElement)#26 (1) { 
    [0]=> 
    string(8) "Juke Box" 
    } 
} 

我想,要成为

array('Network Media Player','Music Player','Juke Box') 
+0

什么是你XPath看起来像?你有没有尝试标记'/ text()'到底? – dez 2012-04-24 17:49:24

+0

是的。结果仍然是一个对象数组。 '$ result = $ parsed-> xpath('/ ItemSearchResponse/Items/Item/ItemAttributes/ProductGroup/text()''从php.net返回一个SimpleXMLElement对象的数组,或者在发生错误时返回FALSE。什么,我要从一组对象开始,我只是寻找处理它们的最有效的方法。 – TecBrat 2012-04-24 17:55:20

回答

1

这里是我的测试:

<pre><?php 

$xml = "<data> 
      <item> 
       <value>Network Media Player</value> 
      </item> 
      <item> 
       <value>Music Player</value> 
      </item> 
      <item> 
       <value>Jukebox Player</value> 
      </item> 
     </data>"; 
$sx = simplexml_load_string($xml); 
print_r($sx); 

print_r(explode("|",implode("|",$sx->xpath("//data/item/value")))); 

?></pre> 

和这里的结果:http://codepad.org/ZkaWpzMc