Может кто-то любезно поможет мне разобраться. У меня есть следующий XML. Мне нужно получить значение photo-url
которое соответствует max-width
75. Как фильтровать это в PHP $xml->posts->post['photo-url']
….?
<photo-url max-width="100"> image1.jpg </photo-url> <photo-url max-width="75"> image2.jpg </photo-url>
Используйте SimpleXMLElement
и запрос xpath.
$xml = new SimpleXMLElement($your_xml_string); $result = $xml->xpath('//photo-url[@max-width="75"]'); // Loop over all the <photo-url> nodes and dump their contents foreach ($result as $node ) { print_r($node); $image = strip_tags($node->asXML); }
Использование PHP DOM
$dom = new DomDocument; $dom->loadXml(' <root> <photo-url max-width="100">image1.jpg</photo-url> <photo-url max-width="75">image2.jpg</photo-url> </root> '); $xpath = new DomXpath($dom); foreach ($xpath->query('//photo-url[@max-width="75"]') as $photoUrlNode) { echo $photoUrlNode->nodeValue; // will be image2.jpg }
Вы можете использовать XPath: //photo-url[@max-width = '75']
. Он выберет все photo-url
которые удовлетворяют этому условию. Для выбора только 1 photo-url
го photo-url
используйте это: //photo-url[@max-width = '75'][1]