簡體   English   中英

使用 simplexml_load_string 解決 simplexml_load_string()

[英]Solve simplexml_load_string() using simplexml_load_string

經過無數次嘗試仍然沒有成功,嘗試訪問這個'http://www.autobid.co.za/halfway/vehicledetails.php?wsdl,提供用戶名和密碼,然后收集Z0F635D0E0F3874FFFA7ZEC反饋。 這段代碼:

$client = new SoapClient('http://www.autobid.co.za/halfway/vehicledetails.php?wsdl');
 $result = $client->getVehicleDetails('spwf87','hk8*9jd'); 
 echo('<pre>'.$result.'</pre>');

轉儲整個文本字段,當然希望將其清理為頁面源狀態:

<pre><![CDATA[<VEHICLEDETAILS><VEHICLE><ID....

等,所以嘗試使用:

$client = new SoapClient('http://www.autobid.co.za/halfway/vehicledetails.php?wsdl');

$result = $client->getVehicleDetails('pass','user');
 
$content = simplexml_load_string($result, null,LIBXML_NOCDATA);
$content = simplexml_load_string($content->pre);
$json = json_encode($content);
$content = json_decode($json,TRUE);
var_dump($content);

但仍然得到錯誤

Warning: simplexml_load_string(): Entity: line 1: parser error : StartTag: invalid element name in index.php on line 24

Warning: simplexml_load_string(): <![CDATA[<VEHICLEDETAILS><VEHICLE><ID>5002386176</ID><VIN>AHTHA3CD503427515</VIN in index.php on line 24

Warning: simplexml_load_string(): ^ in index.php on line 24

Warning: simplexml_load_string(): Entity: line 1: parser error : Extra content at the end of the document in index.php on line 24

Warning: simplexml_load_string(): <![CDATA[<VEHICLEDETAILS><VEHICLE><ID>5002386176</ID><VIN>AHTHA3CD503427515</VIN in index.php on line 24

Warning: simplexml_load_string(): ^ in index.php on line 24
bool(false)

在我的智慧盡頭,必須提供來自源的所有數據。

xml 解析器被不正確的實體& -> &amp;

<?php
$client = new SoapClient('http://www.autobid.co.za/halfway/vehicledetails.php?wsdl'); 
$result = $client->getVehicleDetails('spwf87','hk8*9jd');
//print_r($result);
$content = substr($result, strlen('<![CDATA['), -3);
$content=preg_replace('/&(?!#?[a-z0-9]+;)/', '&amp;', $content);
$content =  simplexml_load_string($content, 'SimpleXMLElement',LIBXML_NOCDATA);
foreach ($content->VEHICLE as $vehicle_props) {
    echo "\n\n ---------------------";
    foreach ($vehicle_props as $prop_name => $prop_value) {
        if ($prop_name == "EXTRAS")  $prop_value=implode("\n  - ", explode(",", $prop_value));
        echo "\n" . ucwords(strtolower($prop_name)) .": " . $prop_value;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM