2011-05-11 88 views
0

我想從pairs.xml文件中顯示的最便宜3對數據, 現在我很困惑如何使用條件它。能有人幫我顯示xml文件

pairs.xml --- ---------

<pairs> 
    <pair> 
     <name>cups</name> 
     <price>50</price> 
    </pair> 
    <pair> 
     <name>mugs</name> 
     <price>60</price> 
    </pair> 
    <pair> 
     <name>plates</name> 
     <price>40</price> 
    </pair> 
    <pair> 
     <name>spoons</name> 
     <price>10</price> 
    </pair> 
</pairs> 

pairs.php ----------

$xmlFile = "pairs.xml"; 
$doc = DOMDocument::load($xmlFile); 
$pair = $doc->getElementsByTagName("pair"); 
echo "<table border=1><tr><th>Name</th><th>Price</th></tr>"; 
foreach ($pair as $node) { 
    $name = $node->getElementsByTagName("name"); 
    $name = $name->item(0)->nodeValue; 
    $price = $node->getElementsByTagName("price"); 
    $price = $price->item(0)->nodeValue; 

    if() 
     echo "<tr><td>{$name}</td><td>{$price}</td><tr>"; 
} 
+1

您會先循環XML並找到/保存3個最便宜的對,然後執行輸出。你不能在一個循環中完成。 – 2011-05-11 20:28:46

+0

@MarcB你應該真的把它作爲答案(因爲它是答案)。 – 2011-05-11 20:31:49

回答

0
$pairs = array(); 
foreach($pair as $node) 
{ 
    $name = $node->getElementsByTagName("name")->item(0)->nodeValue; 
    $price = $node->getElementsByTagName("price")->item(0)->nodeValue; 
    $pairs[$price] = $name; 
} 
ksort($pairs, SORT_NUMERIC); 
$i = 0; 
foreach($pairs AS $p => $n) 
{ 
    echo("<tr><td>{$n}</td><td>{$p}</td></tr>"); 
    $i++; 
    if($i == 3) 
      break; 
} 
+0

它的工作,感謝 – Anees 2011-05-11 20:49:50

0

我認爲this answer可能讓你 在正確的軌道上。