CLXXIII. XMLReader 関数

導入

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

インストール手順

XMLReader 拡張モジュールは、PHP 5.0 では PECL から取得可能です。 また、PHP 5.1 ではデフォルトで組み込まれ、有効になっています。 configure 時に、引数 --enable-xmlreader (5.1 より前では --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 を含むデータを設定する