2016-12-06 10 views
-1

コード内のxml入力を読み取ることはできますが、出力にはSimpleXMLElementプロパティがあります。 echoを使用すると、結果は "SimpleXMLElement"になります。 アウト・プットからこの用語を削除するにはどうすればよいですか?xmlを正しく読み込んでSimpleXMLElementを取り除くにはどうすればいいですか?

にSimpleXMLElement {#253▼ +0: "362932"}

コードは、XMLがhttp://www.xmlsoccer.com/FootballDataDemo.asmx/GetFixtureMatchByID?ApiKey=ZXRIQOWMCFARAWRQIMSLRXCTSZDOBNLOTYWXYXMZYGDSENFSRB&Id=362933ようなものである

$xml=simplexml_load_file("$address&league=3"); 
// dd($xml); 
$items = array(); 
foreach ($xml->Odds as $key => $value) 
{ 
    $matchid= ($value->FixtureMatch_Id); 
    echo "$matchid"; 

あります。

出力からSimpleXMLElementを削除します。

+0

質問を編集して、解析しているXMLのサンプルコードと、出力する内容を追加します。 –

答えて

0

文字列にキャストするだけで済みます。 SimpleXMLElementはいくつかのインターフェイスと魔法を実装しています。たとえば、Traversableは、文字列キャストの場合はforeach()__toString()となります。

echoは暗黙的な文字列キャストなので、テキストコンテンツのみを出力します。あなたはプロパティがSimpleXMLElementvar_dump()最初)で見ることができるように

object(SimpleXMLElement)#5 (1) { 
    [0]=> 
    string(6) "362933" 
} 
string(6) "362933" 
362933 

$xml = <<<'XML' 
<?xml version="1.0" encoding="utf-8"?> 
<XMLSOCCER.COM> 
    <Match> 
    <Id>362933</Id> 
    </Match> 
</XMLSOCCER.COM> 
XML; 

$soccer = new SimpleXMLElement($xml); 
foreach ($soccer->Match as $match) { 
    $matchId = $match->Id; 
    var_dump($matchId); 
    var_dump((string)$matchId); 
    echo $matchId; 
} 

出力:ここ

はストリップダウンXMLの小さな例です。しかし、それは文字列にキャストすることができ(var_dump())、echoは暗黙のキャストを引き起こします。

+0

私は 'matchid' =>(文字列)$ matchidを使って、それらをlaravel viewのために集めています。ありがとう – mrmrn

関連する問題