无法从响应中解析 xml

Unable to parse xml from response

你好,我得到这个 XML 作为回应:

<?xml version="1.0"?>
<Response>
  <Environment>PRODUCTION</Environment>
  <Method/>
  <ResponseCode>03</ResponseCode>
  <ResponseDescription>Invalid Merchant</ResponseDescription>
  <Fee>0.00</Fee>
</Response>

谁能告诉我如何解析它?

如果打印 $response->getBody()->getContents()

我得到 xml

我尝试使用 simplexml_load_string($response->getBody()),结果出现错误:

simplexml_load_string(): Entity: line 2: parser error : XML declaration allowed only at the start of the document

也可以这样尝试 simplexml_load_string($response->getBody()->getContents())

$xml = simplexml_load_string($response->getBody()->getContents()); if ($xml === false) { echo "Failed loading XML: "; foreach(libxml_get_errors() as $error) { echo "<br>", $error->message; } } else { print_r($xml); }

只有我returns Failed loading XML: without any error.

也尝试使用 $xml = new SimpleXMLElement($response->getBody()); 并得到这个错误:String could not be parsed as XML

你能告诉我问题是什么吗?

您应该确保 xml 声明前面没有空格,这些应该始终是 xml 字符串的第一个字节。

尝试使用 trim 来确保是这样:

simplexml_load_string(trim($response->getBody()));