【发布时间】:2019-11-25 22:06:48
【问题描述】:
我在 PHP 中解析 XML 对象时遇到问题。我正在使用 Laravel 5.8
这是我的尝试之一:
$xml = new \SimpleXMLElement($formatted, LIBXML_BIGLINES);
var_dump($xml->children('soapenv', true)->Envalop->Body->children('ns3', true)->getAddressBookResponse->addressBook[0]->businessUnit);
我收到以下错误:
Call to a member function children() on null
我尝试了创建和访问SimpleXMLElement 的不同变体,但结果始终相同。我正在返回一个类型为SimpleXMLElement的空对象
这是我用作输入的示例 XML(来自 SOAP API 调用):
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns3:getAddressBookResponse xmlns:ns2="http://oracle.e1.bssv.JPRCUST0/"
xmlns:ns3="http://oracle.e1.bssv.JPR01000/">
<e1MessageList>
<e1Messages>
<message>Description: All records for the query have not been returned.
</message>
</e1Messages>
</e1MessageList>
<addressBook>
<businessUnit>123456</businessUnit>
<categoryCodesAddressBook>
<categoryCode001>XXX</categoryCode001>
<categoryCode002>XXX</categoryCode002>
</categoryCodesAddressBook>
<description1>MOHAMEDHASSANALI</description1>
</addressBook>
<addressBook>
<businessUnit>789789</businessUnit>
<categoryCodesAddressBook>
<categoryCode001>YYY</categoryCode001>
<categoryCode002>YYY</categoryCode002>
</categoryCodesAddressBook>
<description1>ALIHASSANAHMED</description1>
</addressBook>
</ns3:getAddressBookResponse>
</soapenv:Body>
</soapenv:Envelope>
【问题讨论】:
-
如果您想使用PHP的核心功能获取xml的子信息,可以查看此链接。 geeksforgeeks.org/php-simplexmlelement-children-function
-
@BhavinThummar 我的问题是创建 XML 对象,而不是访问它。我正在取回一个空对象。无论如何感谢您的评论。
-
请检查下面的链接php.net/manual/en/simplexmlelement.addchild.php我认为它可以帮助。
标签: php xml soap simplexml laravel-5.8