0
我試圖從AWS響應中獲取根類別名稱。 ECS PHP類將其作爲類返回。如果這是XML,我可以做一個xpath搜索。我不知道搜索對象的等價物。獲取對象層次結構中的特定值
這裏是對象結構從BrowseNode元素開始:
object(stdClass)#172 (1) {
["BrowseNode"]=>
object(stdClass)#173 (3) {
["BrowseNodeId"]=>
string(8) "11059391"
["Name"]=>
string(22) "Makeup Brushes & Tools"
["Ancestors"]=>
object(stdClass)#174 (1) {
["BrowseNode"]=>
object(stdClass)#175 (3) {
["BrowseNodeId"]=>
string(8) "11062741"
["Name"]=>
string(19) "Tools & Accessories"
["Ancestors"]=>
object(stdClass)#176 (1) {
["BrowseNode"]=>
object(stdClass)#177 (4) {
["BrowseNodeId"]=>
string(8) "11055981"
["Name"]=>
string(8) "Products"
["IsCategoryRoot"]=>
bool(true)
["Ancestors"]=>
object(stdClass)#178 (1) {
["BrowseNode"]=>
object(stdClass)#179 (2) {
["BrowseNodeId"]=>
string(7) "3760911"
["Name"]=>
string(6) "Beauty"
}
}
}
}
}
}
}
}
基本上,如果「IsCategoryRoot」是真的,我需要得到在「名稱」的值下一個「祖先」元素。在這種情況下,「美」就是價值。
我該怎麼做?
看上去就像這將是要走的路。希望只有一種簡單的對象搜索方法,我錯過了PHP文檔中的某處......或者將AWS SOAP響應轉換爲XML可搜索結構的方式。 – eComEvo
你當然可以使用反射或基本'property_exists()'調用的方法,但這裏的主要問題是你有嵌套的對象,所以你需要遞歸。我的猜測是,這個對象在某個時候是通過json_decode運行的JSON響應(基於它是所有的stdClass對象),所以一種可能的替代方法是對其執行「json_encode」並執行正則表達式搜索或者一系列常規字符串搜索)從字符串中提取您正在查找的值。儘管這對我來說似乎有點不好。 –
我必須同意。將堅持遞歸搜索。感謝您的建議! :) – eComEvo