Mam taki plik XML:
<?xml version="1.0" encoding="utf-8"?>
<produkty>
<produkt>
<nazwa>produkt 1</nazwa>
<rozmiar>30</rozmiar>
<kolor>20</kolor>
<cena>23.30</cena>
</produkt>
<produkt>
<nazwa>produkt 2</nazwa>
<rozmiar>15</rozmiar>
<kolor>10</kolor>
<cena>11.30</cena>
</produkt>
<produkt>
<nazwa>produkt 3</nazwa>
<rozmiar>15</rozmiar>
<kolor>12</kolor>
<cena>11.30</cena>
</produkt>
<produkt>
<nazwa>produkt 4</nazwa>
<rozmiar>15</rozmiar>
<kolor>12</kolor>
<cena>16.30</cena>
</produkt>
</produkty>
oraz mam taki plik PHP
<?php
$rekord = 1;
$kolor = 12;
$rozmiar = 15;
$produktyXML = new DOMDocument();
$produktyXML->load('produkty.xml');
$xpath = new DOMXPath($produktyXML);
$query = "produkt[rozmiar=$rozmiar and kolor=$kolor]";
$entries = $xpath->query($query);
# pokaz ilosc elementów w wyniku
echo $entries->length;
#pokaz wszystkie elementy z zapytania (wybrane)
foreach ($entries as $node){
echo $title = $node->getElementsByTagName("rozmiar")->item(0)->nodeValue;
$author = $node->getElementsByTagName("kolor")->item(0)->nodeValue;
echo "$title by $author\n";
}
#pokaz element wybrany na podstawie numeru z całości
$third = $produktyXML->getElementsByTagName('produkt')->item(0);
echo sprintf('Nazwa elementu to: <b>%s</b>',
$third->getElementsByTagName('rozmiar')->item(0)->nodeValue);
?>
to wszytko działa, ale problemem jest że nie umiem wybrać elementu np. pierwszego czy drugiego z tych wyników spełniających warunek, a które są uzyskane z xpath. umiem wyrzucić wszystkie za koleją, ale nie umiem tego wybranego. Umiem wybrany element ale tylko z tych, które są wszystkie razem, ale nie tych które spełniają warunek który im założyłem.
Może to banalne, ale dopiero uczę się php a z XML-em dopiero walczę od dwóch dni.
W całości chodzi o to, że skoro mam wczytane elementy spełniające jakiś tam warunek i znam ich ilość to mógłbym zrobić stronicowanie wyników np. po 10 sztuk.
Bo wybierał bym sobie: pokaz element 10, element 11 itp
