CakeFest 2024: The Official CakePHP Conference

XMLReader::getAttribute

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::getAttribute名前をもとに、属性の値を取得する

説明

public XMLReader::getAttribute(string $name): ?string

指定した名前の属性の値を返します。属性が存在しなかったり 現在位置が要素ノードでなかったりした場合には null を返します。

パラメータ

name

属性の名前。

戻り値

属性の値を返します。指定した名前 name の 属性が見つからなかったり、現在位置が要素ノードではなかったりした場合には null を返します。

変更履歴

バージョン 説明
8.0.0 この関数は false を返さなくなりました。

参考

add a note

User Contributed Notes 3 notes

up
7
Anonymous
13 years ago
Or use XMLReader::ELEMENT and XMLReader::END_ELEMENT rather than the numbers 1 and 15.
up
3
Gabi
16 years ago
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.
up
0
sven at e7o dot de
4 months ago
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;
}
?>
To Top