Or use XMLReader::ELEMENT and XMLReader::END_ELEMENT rather than the numbers 1 and 15.(PHP 5 >= 5.1.0, PHP 7, PHP 8)
XMLReader::getAttribute — Liefert den Wert eines Attributes nach Namen
Der Wert des Attributes mit entsprechendem Namen oder null, wenn das
Attribut nicht existiert oder der Cursor derzeit nicht über einem
Elementknoten positioniert ist.
nameDer Name des Attributes.
Der Wert des Attributes oder null, wenn kein Attribut
name im aktuellen Element gefunden wurde oder der
Cursor derzeitig nicht über einem Elementknoten positioniert ist.
| Version | Beschreibung |
|---|---|
| 8.0.0 |
Diese Funktion gibt nicht mehr false zurück.
|
Or use XMLReader::ELEMENT and XMLReader::END_ELEMENT rather than the numbers 1 and 15.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.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;
}
?>