CLXXXI. XMLReader 関数

導入

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

インストール手順

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

定義済みクラス

XMLReader

メソッド

プロパティ

表 1.

名前読み込み専用説明
attributeCountintyesノード上の属性の数
baseURIstringyesノードのベース URI
depthintyesツリー内でのノードの階層 (0 から数える)
hasAttributesboolyesノードが属性を保持しているかどうか
hasValueboolyesノードがテキストの値を保持しているかどうか
isDefaultboolyes属性が DTD のデフォルトかどうか
isEmptyElementboolyesノードが空要素のタグかどうか
localNamestringyesノードのローカル名
namestringyesノードの限定名
namespaceURIstringyesノードに関連付けられた名前空間の URI
nodeTypeintyesノードの型
prefixstringyesノードに関連付けられた名前空間のプレフィックス
valuestringyesノードのテキスト値
xmlLangstringyesノードが存在する 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) 4CDATA ノード
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) 13Whitespace ノード
XMLReader::SIGNIFICANT_WHITESPACE (integer) 14Significant Whitespace ノード
XMLReader::END_ELEMENT (integer) 15終了要素
XMLReader::END_ENTITY (integer) 16終了エンティティ
XMLReader::XML_DECLARATION (integer) 17XML 宣言ノード

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

定数説明
XMLReader::LOADDTD (integer) 1DTD を読み込むが、妥当性は検証しない
XMLReader::DEFAULTATTRS (integer) 2DTD およびデフォルト属性を読み込むが、妥当性は検証しない
XMLReader::VALIDATE (integer) 3DTD を読み込み、パース時に妥当性を検証する
XMLReader::SUBST_ENTITIES (integer) 4エンティティを参照で置き換える
目次
XMLReader::close -- XMLReader の入力を閉じる
XMLReader::expand -- 現在のノードのコピーを DOM オブジェクトとして返す
XMLReader::getAttribute -- 名前をもとに、属性の値を取得する
XMLReader::getAttributeNo -- インデックスをもとに、属性の値を取得する
XMLReader::getAttributeNs -- 名前および URI をもとに、属性の値を取得する
XMLReader::getParserProperty --  指定したプロパティが設定されているかどうかを示す
XMLReader::isValid -- パースしているドキュメントの妥当性を示す
XMLReader::lookupNamespace -- プレフィックスから、名前空間を検索する
XMLReader::moveToAttribute -- 指定した名前の属性にカーソルを移動する
XMLReader::moveToAttributeNo -- 指定したインデックスの属性にカーソルを移動する
XMLReader::moveToAttributeNs -- 指定した名前の属性にカーソルを移動する
XMLReader::moveToElement -- 現在の属性の親要素にカーソルを移動する
XMLReader::moveToFirstAttribute -- 最初の属性にカーソルを移動する
XMLReader::moveToNextAttribute -- 次の属性にカーソルを移動する
XMLReader::next -- すべてのサブツリーを飛ばして、次のノードにカーソルを移動する
XMLReader::open -- パースする XML を含む URI を設定する
XMLReader::read -- ドキュメント内の次のノードに移動する
XMLReader::setParserProperty -- パーサのオプションを設定または設定解除する
XMLReader::setRelaxNGSchema -- RelaxNG スキーマのファイル名あるいは URI を設定する
XMLReader::setRelaxNGSchemaSource -- RelaxNG スキーマを含むデータを設定する
XMLReader::XML -- パースする XML を含むデータを設定する