Intereting Posts
Проблема с CodeIgniter – force_download () Несколько update_user_meta в WordPress Эффективно дезинфицировать введенный пользователем текст Я хочу, чтобы загрузчик файлов AJAX, например, загружал файл Gmail с индикатором выполнения в PHP PHP: получение изображения из MySQL с использованием PDO Загрузка Force из файла php Использование session_name () в PHP – невозможно получить данные Doctrine 2 добавляет новое поле, которое автоматически генерирует значения последовательности Могла ли моя функция разницы во времени PHP быть улучшена? Как правильно деактивировать данные, полученные из текстовой области, при ее возврате в текстовую область? Есть ли лучшая практика только для частичной интеграции фреймворка PHP в подкаталог веб-сайта? PHP и MySQL: преобразование сохраненного TIMESTAMP в локальный часовой пояс пользователя $ _SERVER безопасен? Youtube Data API v3: как комментарий другого пользователя Laravel: удалить публикацию из URL-адреса, одновременно сохраняя отдельные проекты

Помогите разобрать XML на PHP по значению атрибута

Может кто-то любезно поможет мне разобраться. У меня есть следующий 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]