Для доступа к атрибутам в SimpleXML можно использовать синтаксис в стиле массива.
$element['attribute_name'];
Также доступен метод SimpleXMLElement::attributes()
. Выше будет:
$element->attributes()->attribute_name;
Если атрибут имеет пространство имен (например, blah:attribute_name
), то вы можете предоставить это пространство имен (в качестве префикса или URI) методу attributes()
.
$element->attributes('blah', TRUE)->attribute_name;
$element->attributes('http://example.org/blah')->attribute_name;
Для получения дополнительной информации см. Справочную страницу SimpleXML Basic .
Чтобы применить вышесказанное на практике для этого отдельного вопроса, чтобы напечатать атрибут item-id
второго элемента <item>
, вы можете использовать:
echo $xml->item[1]['item-id'];
Пример ниже перебирает элементы <item>
и печатает связанные с ними значения item-id
и (первое) location-id
.
foreach ($xml->item as $item) {
$location = $item->locations->location;
echo 'Item ID: ' . $item['item-id'] . "\n";
echo 'Locations: ' . $location['location-id'] . "\n";
}