0

私はPHPの初心者です。私がやっていることは正しいか、物事を複雑にしているのか、またはajaxに代替手段があるのか​​ を確認したいだけです

PHPでxmlファイルを読み取り、さらに評価するために配列に保存する必要があります

XML ファイルは

> <IntervalReading>
>     <cost>907</cost>
>     <timePeriod>
>         <duration>900</duration>
>         <start>1330580700</start>
>          <!-- 3/1/2012 5:45:00 AM  -->
>     </timePeriod>
>     <value>302</value> </IntervalReading> <IntervalReading>
>     <cost>907</cost>
>     <timePeriod>
>         <duration>900</duration>
>         <start>1330581600</start>
>          <!-- 3/1/2012 6:00:00 AM  -->
>     </timePeriod>
>     <value>302</value> </IntervalReading> <IntervalReading>
>     <cost>907</cost>
>     <timePeriod>
>         <duration>900</duration>
>         <start>1330582500</start>
>          <!-- 3/1/2012 6:15:00 AM  -->
>     </timePeriod>
>     <value>302</value> </IntervalReading>

このデータを読み取るための PHP コードは次のとおりです。

$doc = new DOMDocument(); $doc->load( "tmp/".$filename ); $employees = array(); $value = array(); $cost =         array(); $start =     array();    $duration = array(); $doc->formatOutput = true; $employees = $doc->getElementsByTagName( "IntervalReading" );    foreach( $employees as $employee )  {
    $names = $employee->getElementsByTagName( "value" ); 
    $val =  $value[] = $names->item(0)->nodeValue;
    $costs = $employee->getElementsByTagName( "cost" ); 
    $cost[] =  $costs->item(0)->nodeValue;  
    $startnames = $employee->getElementsByTagName( "start" ); 
    $start[] = $startnames  ->item(0)->nodeValue;
    $durations  = $employee->getElementsByTagName( "duration" );
    $duration[] = $durations->item(0)->nodeValue;  } }

前もって感謝します

4

1 に答える 1

2

私は通常、この目的のために php SimpleXML を使用します。

http://php.net/manual/en/book.simplexml.php

文字列から xml 構造を読み取ることができ、nice オブジェクトを返します。

于 2012-05-30T08:46:34.547 に答える