PHP SimpleXML 从对象获取值

PHP SimpleXML get value from Object

有关于从 simpleXML 对象获取值的问题。所以首先,我这样做

$data = $xml->children('SOAP-ENV', true)->Body->children()->ExecuteQueryResponse->pdomOutput->recipient->attributes()->email;
var_dump($data);

return以下

object(SimpleXMLElement)#8 (1) {
  [0]=>
  string(26) "myemail@email.com"
}

我只需要这个的电子邮件地址。所以我然后继续这样做

$this->response = (string)$data[0];
var_dump($this->response);

现在我希望上面的 return 只是电子邮件地址,但它 return 包含所有内容,包括类型,例如

string(26) "myemail@email.com"

我可以使用 preg_match 之类的东西轻松地从中获取电子邮件地址,但这肯定不是正确的方法吗?没有类型是不是取不到值?

谢谢

如果您只想拥有字符串,SimpleXML 具有 __toString() function for SimpleXMLElements。因此,对于您的代码,这将是:

$data = $xml->children('SOAP-ENV', true)->Body->children()->ExecuteQueryResponse->pdomOutput->recipient->attributes()->email;
$this->response = $data[0]->__toString();