首页 > 解决方案 > 如何修复 Laravel 5.7 中的错误 SimpleXMLElement?

问题描述

问题:

我想创建如下函数的 XML 格式,但是当我在邮递员中运行它时,出现以下错误:

异常:无法将字符串解析为 XML。

如何解决这个问题?

脚本:

这是我的功能:

public function testapi(Request $request){
    $url = "http://xxx.xx.x.xx:xxxx/xxxx/Activity?wsdl";
    $client = new \nusoap_client($url, 'wsdl');

    $xmlstr = '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:c1f="http://splwg.com/C1FieldActivityMaintenance.xsd">';

    $xml = new \SimpleXMLElement($xmlstr); 

    $header = $xml->addChild('Header');         
    $security = $header->addChild('wsse:Security', '', 'wsse');         
    $userToken = $security->addChild('wsse:UsernameToken');             
    $userToken->addChild('wsse:Username', env('Username', ''));           
    $userToken->addChild('wsse:Password', env('Password', ''));               


    $client = new Client();   
    $response = $client->post($url, [         
                    'headers' => [            
                        'SOAPAction' => $action,      
                        'Content-Type' => 'text/xml'          
                        ],          
                    'body' => $xml   
                ]);  

    return $response->getBody()->getContents();
}

标签: phplaravel-5soapui

解决方案


$xmlstr不是有效的xml. 您可以尝试在

http://xmlbeautifier.com/


推荐阅读