CLXXVIII. XMLReader 関数

導入

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

インストール手順

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

定義済みクラス

XMLReader

メソッド

プロパティ

表 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 エンティティを参照で置き換える
目次
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 を含むデータを設定する