Hey, also stelle ich einen Versandrechner mit this function bereit, und ich bekomme diesen Fehler nur, wenn ich IE benutze. Firefox ist mit dem Versandrechner gut. Ich bin mit diesem Fehler nicht vertraut, und Google-Suchen sagen mir, dass es ein Problem mit dem XML-Format ist. Problem: Die XML-Antwort von UPS Versandberechnungsserver sollte diesen Inhalt nicht enthalten. Also, meine Frage ist: wo denkst du, der Bug ist? Ich schätze Antworten und Vorschläge, wo Sie nachsehen können. Ich zeichne eine leere.php, xml, ups Versand: "Kann XML-Eingabe nicht mit XSL anzeigen ..." Wo ist der Fehler?
Fehler beim IE (vrs 8. 7 und 6):
Die XML-Seite kann nicht angezeigt werden nicht XML-Eingabe anzeigen können XSL-Style Blatt verwenden. Bitte korrigieren Sie den Fehler und dann klicken Sie auf die Schaltfläche Aktualisieren, oder versuchen Sie es später erneut .
falsche Syntax wurde in einem Kommentar verwendet. Fehler bei der Verarbeitung Ressource 'http://mgxvideo.com/mgxcopy-alpha-3/shopping/cart_displa ...
<!------------------- main content ------------------------->
----------^
Teil des PHP-Code vom Server angefordert:
$ch = curl_init("https://www.ups.com/ups.app/xml/Rate");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_TIMEOUT, 90);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
$result=curl_exec ($ch);
echo '<!-- '. $result. ' -->'; // THIS LINE IS FOR DEBUG PURPOSES ONLY-IT WILL SHOW IN HTML COMMENTS
$data = strstr($result, '<?');
$xml_parser = xml_parser_create();
xml_parse_into_struct($xml_parser, $data, $vals, $index);
xml_parser_free($xml_parser);
$params = array();
$level = array();
foreach ($vals as $xml_elem) {
if ($xml_elem['type'] == 'open') {
if (array_key_exists('attributes',$xml_elem)) {
list($level[$xml_elem['level']],$extra) = array_values($xml_elem['attributes']);
} else {
$level[$xml_elem['level']] = $xml_elem['tag'];
}
}
if ($xml_elem['type'] == 'complete') {
$start_level = 1;
$php_stmt = '$params';
while($start_level < $xml_elem['level']) {
$php_stmt .= '[$level['.$start_level.']]';
$start_level++;
}
$php_stmt .= '[$xml_elem[\'tag\']] = $xml_elem[\'value\'];';
eval($php_stmt);
}
}
curl_close($ch);
#print_r($params);
#echo "<br/><br/>";
return $params['RATINGSERVICESELECTIONRESPONSE']['RATEDSHIPMENT']['TOTALCHARGES']['MONETARYVALUE'];
Und hier ist, was Firefox als Ergebnis der xml-Anfrage widerspiegelt (im obigen Code ist es die Zeile, die besagt: "DIESE LINIE IST NUR FÜR DEBUG-ZWECKE":
<!-- HTTP/1.1 100 Continue
HTTP/1.1 200 OK
Date: Fri, 26 Jun 2009 21:58:04 GMT
Server: Apache
Pragma: no-cache
Content-Length: 1524
Content-Type: application/xml
<?xml version="1.0"?><RatingServiceSelectionResponse><Response><TransactionReference><CustomerContext>Bare Bones Rate Request</CustomerContext><XpciVersion>1.0</XpciVersion></TransactionReference><ResponseStatusCode>1</ResponseStatusCode><ResponseStatusDescription>Success</ResponseStatusDescription></Response><RatedShipment><Service><Code>02</Code></Service><RatedShipmentWarning>Your invoice may vary from the displayed reference rates</RatedShipmentWarning><BillingWeight><UnitOfMeasurement><Code>LBS</Code></UnitOfMeasurement><Weight>6.0</Weight></BillingWeight><TransportationCharges><CurrencyCode>USD</CurrencyCode><MonetaryValue>14.34</MonetaryValue></TransportationCharges><ServiceOptionsCharges><CurrencyCode>USD</CurrencyCode><MonetaryValue>0.00</MonetaryValue></ServiceOptionsCharges><TotalCharges><CurrencyCode>USD</CurrencyCode><MonetaryValue>14.34</MonetaryValue></TotalCharges><GuaranteedDaysToDelivery>2</GuaranteedDaysToDelivery><ScheduledDeliveryTime></ScheduledDeliveryTime><RatedPackage><TransportationCharges><CurrencyCode>USD</CurrencyCode><MonetaryValue>14.34</MonetaryValue></TransportationCharges><ServiceOptionsCharges><CurrencyCode>USD</CurrencyCode><MonetaryValue>0.00</MonetaryValue></ServiceOptionsCharges><TotalCharges><CurrencyCode>USD</CurrencyCode><MonetaryValue>14.34</MonetaryValue></TotalCharges><Weight>6.0</Weight><BillingWeight><UnitOfMeasurement><Code>LBS</Code></UnitOfMeasurement><Weight>6.0</Weight></BillingWeight></RatedPackage></RatedShipment></RatingServiceSelectionResponse> -->
Ideen?
So stellt sich heraus, es war die Seite, dass es ein Problem mit Kommentaren ist, die nicht richtig gemacht werden. ist anscheinend in gewisser Weise nur für zB illegal. Jetzt ist mein Problem, dass die Seite den HTML-Code eher das gerenderte HTML anzeigt. – montooner
Keine Notwendigkeit, "[gelöst]" zum Titel hinzuzufügen, akzeptieren Sie einfach eine Antwort, indem Sie auf das umrissene Häkchen einer Antwort klicken (kann sogar Ihre eigene Antwort sein). – VolkerK