2012-04-24 25 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