0

PHP でfile_get_contents()を介して url を呼び出して、xml データを解析しようとしています。結果は次のとおりです。

<?xml version="1.0" encoding="UTF-8" ?>
<RESPONSE>
<SINGLE>
<KEY name="sitename"><VALUE>RedCross Test</VALUE>
</KEY>
<KEY name="username"><VALUE>test1</VALUE>
</KEY>
<KEY name="firstname"><VALUE>Test1</VALUE>
</KEY>
<KEY name="lastname"><VALUE>testTest1</VALUE>
</KEY>
</SINGLE>
</RESPONSE>

手順は次のとおりです。

<?php

header('Content-type: text/html; charset=utf-8');

$xml_obj = file_get_contents("http://localhost/example/webservice/rest/server.php?wstoken=".$token."&function=get_info");

$data = $xml_obj->SINGLE->KEY[2]->VALUE;
echo $data;

?>

応答は次のとおりです: 行 2 の列 1 のエラー: 注意: 行 7 で非オブジェクトのプロパティを取得しようとしています。

4

3 に答える 3

3

file_get_contentsXML コードを解析せずに文字列として返すだけです。simplexml_load_fileおそらく代わりに使用したいでしょう。

于 2013-01-22T18:47:23.847 に答える
3

エラーは、それ$xml_objがオブジェクトではないことを示しています。そうではないからです。からの応答の内容を (文字列として) 格納する単純な varfile_get_contentsです。

それ以外の:

$xml_obj = file_get_contents("http://localhost/example/webservice/rest/server.php?wstoken=".$token."&function=get_info");

試す:

$xml_obj = simplexml_load_file("http://localhost/example/webservice/rest/server.php?wstoken=".$token."&function=get_info");

または、コンテンツを他のものに使用する必要があり、別の変数に入れたい場合:

$contents = file_get_contents("http://localhost/example/webservice/rest/server.php?wstoken=".$token."&function=get_info");

$xml = new DOMDocument();
$xml->loadXML( $contents );
于 2013-01-22T18:47:56.287 に答える
0

file_get_contents はSTRINGを返します。たとえば、生の xml です。処理を行う前に、その文字列を DOM または Simple_XML にロードする必要があります->xxx

$xml = file_get_contents('...');
$dom = new DOMDocument();
$dom->loadXML($xml);
etc...
于 2013-01-22T18:48:01.207 に答える