XMLReader::getAttribute
(PHP 5 >= 5.1.0)
XMLReader::getAttribute — Get the value of a named attribute
Description
public
string
XMLReader::getAttribute
( string
$name
)
Returns the value of a named attribute or NULL
if the
attribute does not exist or not positioned on an element node.
Parameters
-
name
-
The name of the attribute.
Return Values
The value of the attribute, or NULL
if no attribute with the given
name
is found or not positioned on an element node.
Changelog
Version | Description |
---|---|
5.1.3 |
Return NULL if no attribute found.
Previously, returned an empty string.
|
See Also
- XMLReader::getAttributeNo() - Get the value of an attribute by index
- XMLReader::getAttributeNs() - Get the value of an attribute by localname and URI
- Функция XMLReader::close() - Закрыть ввод XMLReader
- Функция XMLReader::expand() - Возвратить копию текущего узла в виде объекта DOM
- Функция XMLReader::getAttribute() - Получить значение атрибута с определённым именем
- Функция XMLReader::getAttributeNo() - Получить значение атрибута по индексу
- Функция XMLReader::getAttributeNs() - Получить значение атрибута по localname и URI
- Функция XMLReader::getParserProperty() - Указывает, было ли определенное свойство установлено
- Функция XMLReader::isValid() - Показать, является ли разбираемый документ синтаксически правильным
- Функция XMLReader::lookupNamespace() - Найти пространство имён для префикса
- Функция XMLReader::moveToAttribute() - Переместить курсор к атрибуту с заданным именем
- Функция XMLReader::moveToAttributeNo() - Переместить курсор на атрибут по индексу
- Функция XMLReader::moveToAttributeNs() - Переместить курсор к именованному атрибуту
- Функция XMLReader::moveToElement() - Позиционировать курсор на родительском элементе текущего атрибута
- Функция XMLReader::moveToFirstAttribute() - Переместить позицию курсора на первый атрибут
- Функция XMLReader::moveToNextAttribute() - Переместить позицию курсора на следующий атрибут
- Функция XMLReader::next() - Переместить курсор на следующий узел, пропуская все поддеревья
- Функция XMLReader::open() - Установить URI, содержащий XML-документ для разобора
- Функция XMLReader::read() - Переместиться к следующему узлу в документе
- Функция XMLReader::readInnerXML() - Извлечь XML из текущего узла
- Функция XMLReader::readOuterXML() - Получить XML из текущего узла, включая сам узел
- Функция XMLReader::readString() - Прочитать содержимое текущего узла как строку
- Функция XMLReader::setParserProperty() - Устанавливает опцию парсера
- Функция XMLReader::setRelaxNGSchema() - Устанавить имя файла или URI для схемы RelaxNG
- Функция XMLReader::setRelaxNGSchemaSource() - Устанавливает данные, содержащие схему RelaxNG
- Функция XMLReader::setSchema() - Проверить документ, используя XSD
- Функция XMLReader::XML() - Установить данные, содержащие XML для разбора
Коментарии
might be obvious, but not to everyone ;-) ... when reading attributes from a node that has sub-nodes (and creating an output from this node), the output will be issued twice, once on the <ELEMENT> tag and once on the end tag </ELEMENT>. To avoid this, you can test on which part of the node you are using the property nodeType.
It'll be 1 for the element, 15 for the end element.
Or use XMLReader::ELEMENT and XMLReader::END_ELEMENT rather than the numbers 1 and 15.
To get all attributes and their names, use something like this:
<?php
function getAttributes($reader)
{
$attributes = [];
for ($i = 0; $i < $reader->attributeCount; $i++) {
$reader->moveToAttributeNo($i);
$attributes[$reader->name] = $reader->value;
}
return $attributes;
}
?>