2011-12-31 26 views
0

我想加載一個XML文件,然後評估XML中的2個不同的特定標籤,並將字符串拉入變量..我能夠獲得變量工作,但我無法做到這一點需要兩個變量,因爲事情是被寫在功能..Php解析XML和評估多行設置單獨的變量

這是我加載XML文件...

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

這是我評價不同的線..

//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

我會將此添加爲評論,因爲這不是真的答案,但我沒有特權。

如果這是一個格式良好的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; 
}