Mam plik XML w postaci:
<offers>
<offer>
<param name="product_code">AAA</param>
<param name="name">Produkt 1</param>
<param name="ean">111</param>
</offer>
<offer>
<param name="product_code">BBB</param>
<param name="name">Produkt 2</param>
<param name="ean">222</param>
</offer>
<offer>
<param name="product_code">CCC</param>
<param name="name">Produkt 3</param>
<param name="ean">333</param>
</offer>
<offers>
Chciałbym z niego wyciągnąć wszystkie takie wartości ean i name, dla których wartości ean istnieją w zdefiniowanej tablicy kodów:
$products = ['222'];
Obecnie korzystam z zachłannego rozwiązania:
foreach($offers->offer as $offer) {
foreach($offer->param as $param) {
if($param['name'] == "ean" && in_array($param['name'], $products)) {
// do something here
}
}
Czy skorzystatanie z SimpleXMLElement::xpath, będzie optymalnym rozwiązaniem czy można to zrobić szybciej?