你如何从简单的 xml 对象中获取字符串


How do you get the string out of simple xml object?

所以我有一个名为$locations的对象数组,每个对象都是一个SimpleXMLElement,这个数组中的每个对象:

foreach ($locations as $key => $location) {
    var_dump($location);
}
die();   

看来:

object(SimpleXMLElement)#2 (9) {
  ["@attributes"]=>
  array(2) {
    ["fb"]=>
    string(0) ""
    ["ll"]=>
    string(21) "44.1097932,-79.584537"
  }
  ["label"]=>
  string(8) "Bradford"
  ["name"]=>
  string(8) "Bradford"
  ["address"]=>
  string(52) "448 Holland Street West, Unit 3 Bradford, ON L3Z 2A4"
  ["phone"]=>
  string(14) "(905) 551-9463"
  ["fax"]=>
  object(SimpleXMLElement)#24 (0) {
  }
  ["mngr"]=>
  string(12) "OPENING SOON"
  ["email"]=>
  object(SimpleXMLElement)#25 (0) {
  }
  ["hours"]=>
  object(SimpleXMLElement)#26 (0) {
  }
}

现在我想要字符串,而不是对象,而是从这些对象中的每一个name的字符串,该数组具有 $key 键和 name$value。所以我做到了:

$organizedLocations = array ();
foreach ($locations as $key => $location) {
    var_dump($location, $location->name);
    $organizedLocations[$key] = $location->name;
}
die();

请注意var_dump$location->name是:

object(SimpleXMLElement)#23 (1) {
  [0]=>
  string(8) "Bradford"
}

这不是我想要的。在这种情况下,我想要的是"布拉德福德",而不是一些带有字符串的对象。我尝试做$location->name->0我什至尝试在foreach中循环$location->name,我尝试$location->name[0]这些都没有奏效。

如何将Bradford从对象中获取到数组中作为$key的值?

正确的方法是将其转换为字符串,这样我将获得我想要的实际值,然后存储在数组中:

 (string) $location->name;

可能的重复项。也许这些线程是您需要的

强制将 SimpleXML 对象转换为字符串,而不考虑上下文

从 SimpleXMLElement 对象中获取值