PHP マニュアル
前のページ |  | 次のページ

# CLXXVIII. XMLReader 関数

# 導入

XMLReader 拡張モジュールは、プル型の XML パーサです。ドキュメント ストリーム内をカーソル風に進んでいき、その途中の各ノードで立ち止まります。

# インストール手順

XMLReader 拡張モジュールは、PHP 5.0 では PECL から取得可能です。 また、PHP 5.1 ではデフォルトで組み込まれ、有効になっています。 configure 時に、引数 `--enable-xmlreader` (5.1 より前では `--with-xmlreader`) を指定することでも有効にできます。libxml 拡張モジュールが必要です。

# 定義済みクラス

## XMLReader

### メソッド

- 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 宣言ノード

表 3. XMLReader パーサオプション

定数 | 値 | 説明
--- | --- | ---
`XMLReader::LOADDTD` (integer) | 1 | DTD を読み込むが、妥当性は検証しない
`XMLReader::DEFAULTATTRS` (integer) | 2 | DTD およびデフォルト属性を読み込むが、妥当性は検証しない
`XMLReader::VALIDATE` (integer) | 3 | DTD を読み込み、パース時に妥当性を検証する
`XMLReader::SUBST_ENTITIES` (integer) | 4 | エンティティを参照で置き換える

前のページ | ホーム | 次のページ
xmlrpc_set_type | 上に戻る | XMLReader::close