XMLReader 拡張モジュールは、プル型の XML パーサです。ドキュメント ストリーム内をカーソル風に進んでいき、その途中の各ノードで立ち止まります。
XMLReader 拡張モジュールは、PHP 5.0.0 では PECL から取得可能です。
また、PHP 5.1.0 ではデフォルトで組み込まれ、有効になっています。
configure 時に、引数
--enable-xmlreader
(5.1.0 より前では --with-xmlreader
)
を指定することでも有効にできます。libxml
拡張モジュールが必要です。
XMLReader::close - XMLReader の入力を閉じる
XMLReader::expand - 現在のノードを DOM ノードにエクスポートする
XMLReader::getAttribute - 名前をもとに、属性の値を取得する
XMLReader::getAttributeNo - 位置をもとに、属性の値を取得する
XMLReader::getAttributeNs - 名前および URI をもとに、属性の値を取得する
XMLReader::getParserProperty - パーサのプロパティが設定されているかどうかを示す
XMLReader::isValid - 妥当なドキュメントであるかどうかを示す
XMLReader::lookupNamespace - ノードのスコープで、プレフィックスの URI を取得する
XMLReader::moveToAttribute - リーダを、指定した名前の属性に移動する
XMLReader::moveToAttributeNo - リーダを、指定したインデックスの属性に移動する
XMLReader::moveToAttributeNs - リーダを、指定した名前および URI の属性に移動する
XMLReader::moveToElement - 現在の属性ノードの親要素に移動する
XMLReader::moveToFirstAttribute - ノードの最初の属性に移動する
XMLReader::moveToNextAttribute - ノードの次の属性に移動する
XMLReader::next - 子を飛ばして、次の要素に移動する
XMLReader::open - パースする URI を設定する
XMLReader::read - ストリーム内の次のノードに移動する
XMLReader::setParserProperty - パーサのプロパティを設定する
XMLReader::setRelaxNGSchema - 妥当性を検証するための RelaxNG スキーマの URI を設定する
XMLReader::setRelaxNGSchemaSource - 妥当性を検証するための RelaxNG スキーマを含む文字列を設定する
XMLReader::XML - パースする文字列データを設定する
表 1.
名前 | 型 | 読み込み専用 | 説明 |
---|---|---|---|
attributeCount | int | yes | ノード上の属性の数 |
baseURI | string | yes | ノードのベース URI |
depth | int | yes | ツリー内でのノードの階層 (0 から数える) |
hasAttributes | bool | yes | ノードが属性を保持しているかどうか |
hasValue | bool | yes | ノードがテキストの値を保持しているかどうか |
isDefault | bool | yes | 属性が DTD のデフォルトかどうか |
isEmptyElement | bool | yes | ノードが空要素のタグかどうか |
localName | string | yes | ノードのローカル名 |
name | string | yes | ノードの限定名 |
namespaceURI | string | yes | ノードに関連付けられた名前空間の URI |
nodeType | int | yes | ノードの型 |
prefix | string | yes | ノードに関連付けられた名前空間のプレフィックス |
value | string | yes | ノードのテキスト値 |
xmlLang | string | yes | ノードが存在する xml:lang スコープ |
以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
警告 |
PHP 5.1 以降では、XMLReader はクラス定数を使用します。それより前の リリースでは、XMLREADER_ELEMENT のような形式の グローバル定数を使用します。 |
表 2. XMLReader ノード型
定数 | 値 | 説明 |
---|---|---|
XMLReader::NONE (integer) | 0 | ノード型なし |
XMLReader::ELEMENT (integer) | 1 | 開始要素 |
XMLReader::ATTRIBUTE (integer) | 2 | 属性ノード |
XMLReader::TEXT (integer) | 3 | テキストノード |
XMLReader::CDATA (integer) | 4 | CDATA ノード |
XMLReader::ENTITY_REF (integer) | 5 | エンティティ参照ノード |
XMLReader::ENTITY (integer) | 6 | エンティティ宣言ノード |
XMLReader::PI (integer) | 7 | 処理命令 (Processing Instruction) ノード |
XMLReader::COMMENT (integer) | 8 | コメントノード |
XMLReader::DOC (integer) | 9 | 文書ノード |
XMLReader::DOC_TYPE (integer) | 10 | 文書型ノード |
XMLReader::DOC_FRAGMENT (integer) | 11 | 文書片ノード |
XMLReader::NOTATION (integer) | 12 | 記法ノード |
XMLReader::WHITESPACE (integer) | 13 | Whitespace ノード |
XMLReader::SIGNIFICANT_WHITESPACE (integer) | 14 | Significant Whitespace ノード |
XMLReader::END_ELEMENT (integer) | 15 | 終了要素 |
XMLReader::END_ENTITY (integer) | 16 | 終了エンティティ |
XMLReader::XML_DECLARATION (integer) | 17 | XML 宣言ノード |