Я пытаюсь показать изображение с помощью xml-файла и SimpleXML
XML-код
<icons> <icon size="tiny" href="/FF02-tiny.jpg" /> <icon size="sidebar" href="/FF02-sidebar.jpg" /> <icon size="full" href="/FF02-full.jpg" /> </icons>
Я хочу получить атрибут href
для строки size="full"
.
я пробовал
icons->icon->attributes()->href
но это только дает мне первый 'tiny'
размер. Я знаю, что должен использовать xpath, но я потерян.
$icons->icon
даст вам объект SimpleXMLElement
который дает доступ ко всем дочерним элементам $icons
объекта $icons
.
Оттуда вам нужно выбрать, какой значок вы хотите получить для этого атрибута. Это работает с доступом, подобным массиву, и числовым значением для дочернего элемента с нулевым индексом и строковым значением для атрибута:
// specify what icon you want (third) // and the attribute (href) $icons->icon[2]['href'];
Вы обнаружите, что это описано в руководстве по PHP с базовыми примерами SimpleXML ( пример №3 и пример № 5 ).
Однако это не работает, если позиция элемента, который вы ищете, изменяется. Поэтому предлагается использовать вместо этого более специфическое xpath-выражение .
Да, вы можете выбрать узел атрибута с выражением xpath:
list($iconHref) = $xml->xpath("//icon[@size='full']/@href"); echo $iconHref;