0

xmlを配列に入れてから、join関数を使用してxmlファイルを表示する必要があります。すでにxmlを抽出していますが、このコードでjoin関数を使用する方法がわかりません。これを理解するのを手伝ってください。xmlコードは次のとおりです。

<ValCurs Date="06.07.2012" name="Ratele oficiale de schimb">
<Valute ID="47">
<NumCode>978</NumCode>
<CharCode>EUR</CharCode>
<Nominal>1</Nominal>
<Name>Euro</Name>
<Value>15.3051</Value>
</Valute>
<Valute ID="44">
<NumCode>840</NumCode>
<CharCode>USD</CharCode>
<Nominal>1</Nominal>
<Name>Dolar S.U.A.</Name>
<Value>12.2343</Value>

xmlをextraxtする関数:

function curs() {
  $date = date("d.m.Y");  
  $link = 'http://bnm.md/md/official_exchange_rates?get_xml=1&date='.$date; 
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $link);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  $xml_array = curl_exec($ch);
  curl_close($ch);
  $xml_array = file_get_contents($link);

    $values = array();

 $curs = new SimpleXMLElement($xml_array);

 foreach($curs as $key => $value) {

    if (($value->CharCode) == 'USD') {

    $values .= $value->Name." - ".$value->Value.", ";
    }

    if (($value->CharCode) == 'EUR') {

        $values .= $value->Name." - ".$value->Value.", ";
    }
  }

  $value = str_replace(',', '.', $values);

   return $value;
}
4

1 に答える 1

0

あなたが何を求めているのかはあまり明確ではありませんが、私がそれを正しく収集すれば、あなたはこのようなことをしたいと思うでしょう。変数$valuesの配列ロジックと文字列ロジックを混合していることに注意してください。

$values = array();
$curs = new SimpleXMLElement($xml_array);

foreach($curs as $key => $value) {

    if (($value->CharCode) == 'USD') {

        $values[] = $value->Name." - ".$value->Value;
    }

    if (($value->CharCode) == 'EUR') {

        $values[] = $value->Name." - ".$value->Value;
    }
}

$value = implode('.', $values);

return $value;

注:これらの文字列を「。」とマージすることの有用性についてはよくわかりません。私はあなたが\nのような何かを追いかけていると思います。

于 2012-07-20T11:23:30.637 に答える