2011-12-31 2 views
0

XMLファイルを読み込み、xml内の2つの異なるタグを評価し、文字列を変数にプルしようとしています。仕事しかし、私は別のラインを評価する場所ですPHPでXMLを解析し、複数の行を評価して別々の変数を設定する

$test1 = file_get_contents('testfile1.xml'); 
$dom = new DOMDocument(); 
@$dom->loadHTML($test1); 

...私はxmlファイルをロードする場所です..

何かが上書きされているので、両方の変数を必要とする機能を実行することができません..

//line1 

$domx1 = new DOMXPath($dom); 
$entries1 = $domx1->evaluate("//dominant_period_sec"); 

$periodArray = array(); 
foreach ($entries1 as $entry1) { 

$wavePeriod = $entry1->nodeValue; 
} 

//line2 

$domx2 = new DOMXPath($dom); 
$entries2 = $domx2->evaluate("//dominant_wind_dir"); 


$avgwaveHeightArray = array(); 
foreach ($entries2 as $entry2) { 

$waveFeet = $entry2->nodeValue; 

} 

答えて

0

私はこれをコメントとして追加したいと思います。なぜなら、実際には答えはないからですが、私はprivを持っていません。

整形式のXMLファイルの場合、なぜloadHTMLを使用していますか?どうしてですか?

$dom = new DOMDocument(); 
@$dom->load('testfile1.xml'); 

私は答えがあると思いたい:

あなたがそれらを上書きしているので、変数$ wavePeriodと$ waveFeetは、forループの中に上書き取得されています)。各項目を配列などにプッシュしてみてください。おそらくそれらを連結しています。このような何か?

$waveFeet = array(); 
foreach ($entries2 as $entry2) { 
array_push($waveFeet, $entry2->nodeValue); 
} 

または

$waveFeet = ''; 
foreach ($entries2 as $entry2) { 
$waveFeet .= $entry2->nodeValue; 
} 
関連する問題