Or use XMLReader::ELEMENT and XMLReader::END_ELEMENT rather than the numbers 1 and 15.
(PHP 5 >= 5.1.0, PHP 7)
XMLReader::getAttribute — Get the value of a named attribute
$name
) : string|null
Returns the value of a named attribute or null
if the
attribute does not exist or not positioned on an element node.
name
The name of the attribute.
Versiune | Descriere |
---|---|
8.0.0 |
This function can no longer return false .
|
The value of the attribute, or null
if no attribute with the given
name
is found or not positioned on an element node.
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;
}
?>