отображение данных XML-файла

#php #xml

#php #xml

Вопрос:

я хочу отобразить самые дешевые 3 пары из pairs.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 самые дешевые пары, а затем выполнили вывод. Вы не можете сделать это за один цикл.

2. @MarcB вам действительно следует опубликовать это как ответ (поскольку это и есть ответ).

Ответ №1:

 $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;
}