PHP SimpleXML从Object获取值


PHP SimpleXML get value from Object

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

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

然后返回以下

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

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

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

现在我希望上面只返回电子邮件地址,但相反,它会返回所有内容,包括类型,例如

string(26) "myemail@email.com"

我可以使用preg_match之类的东西很容易地从中获取电子邮件地址,但这肯定不是办法吗?没有类型就不可能得到值吗?

感谢

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

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