私は外部APIからXMLを読み込み、それをsimplexml文字列に変換しようとしています。私はcURLクロスドメインプロキシスクリプトを使用してXMLを取得していますが、XMLをsimplexml_load_string関数で実行すると、すべてが白い画面になります。外部XMLからsimplexml_load_stringが白いページを返します
JSONに簡単に変換できる方法があれば、XMLは自分の特典ではないので、私はそのルートを辿ることができます。
ここで私が使用している次のコード+ XMLです:
外部XMLファイル:
<Sensors xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Sensor>
<ID>12</ID>
<Name>EFM W.level</Name>
<Series>Level</Series>
<Unit>m</Unit>
</Sensor>
<Sensor>
<ID>13</ID>
<Name>EFM Wave h.</Name>
<Series>Height</Series>
<Unit>m</Unit>
</Sensor>
</Sensors>
PHP:参照用
<?php
$url = 'LINK TO EXTERNAL XML';
$headers = ($_POST['headers']) ? $_POST['headers'] : $_GET['headers'];
$mimeType = ($_POST['mimeType']) ? $_POST['mimeType'] : $_GET['mimeType'];
$session = curl_init($url);
if ($_POST['url']) {
$postvars = '';
while ($element = current($_POST)) {
$postvars .= key($_POST).'='.$element.'&';
next($_POST);
}
curl_setopt($session, CURLOPT_POST, true);
curl_setopt($session, CURLOPT_POSTFIELDS, $postvars);
}
curl_setopt($session, CURLOPT_HEADER, ($headers == "true") ? true : false);
curl_setopt($session, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($session);
if ($mimeType != "") {
header("Content-Type: ".$mimeType);
}
$xml = simplexml_load_string($response);
print_r($xml);
curl_close($session);
?>
、i「は、クロスドメインのプロキシスクリプトは、使用している - https://github.com/abdul/php-proxy/blob/master/proxy.php
ありがとう。
あなたは '$ response'変数に正しい内容がありますか? – Gedweb
私は$応答を返すときこれを得る - > https://s13.postimg.org/avuosdix3/Screen_Shot_2016_09_05_at_13_33_09.png –