- 此问题在此处已有答案**:
Reference - How do I handle Namespaces (Tags and Attributes with a Colon in their Name) in SimpleXML?(2个答案)
关闭3个月前.
$response = curl_exec($ch);
curl_close($ch);
dd($response);
其类型为响应字符串。
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns3:GetProductListResponse xmlns:ns3="http://xxx1">
<result>
<status>success</status>
</result>
<products>
<product>
<currencyAmount>900.00</currencyAmount>
<currencyType>1</currencyType>
<displayPrice>900.00</displayPrice>
<isDomestic>false</isDomestic>
<id>557830715</id>
<price>900.00</price>
<productSellerCode>TSRT7777</productSellerCode>
<approvalStatus>6</approvalStatus>
...
为了将此数据转换为xml,我使用了simplexml_load_string()
$response = curl_exec($ch);
curl_close($ch);
$xml = simplexml_load_string($response);
dd($xml);
而输出是这样的。
^ SimpleXMLElement {#435}
我在试着获取里面的数据然后试试这个。
$status = (string)$xml->result->status;
dd($status);
退货:
^ ""
我尝试使用simplexml_load_file(),但没有结果。我的主要目标是将此数据作为json获取,但我无法做到这一点,因为我无法读取值。任何帮助都将是伟大的。提前感谢。
在@Jacob Mulquin的建议之后,我使用了:
if ($xml === false) {
dump("b");
foreach (libxml_get_errors() as $error) {
dump($error->message);
}
dd("a");
} else {
dd("c");
}
退回:"c"
1条答案
按热度按时间5kgi1eie1#
由于各种原因,您的示例xml格式不正确,但是假设实际的
$response
是格式正确的xml字符串,下面的代码应该可以满足您的需要:输出应为