関数・クラス解説

DOMXPath::query

version:PHP 5, PHP 7 (公式)

与えられた XPath 式を評価する

公式リファレンス

書式

public DOMXPath::query ( string $expression [, DOMNode $contextnode [, bool $registerNodeNS = TRUE ]] ) : DOMNodeList

説明

与えられた XPath 式 expression を評価します。

パラメータ

expression
実行する XPath 式。
contextnode
相対 XPath クエリを実行する場合に、オプションで基準ノードを指定することが可能です。 デフォルトでは、クエリは root 要素に対する相対パスとなります。
registerNodeNS
オプションの registerNodeNS で、 コンテキストノードの自動登録を無効にすることができます。

返値

与えられた XPath 式 expression にマッチする すべてのノードを含む DOMNodeList を返します。 ノードを返さない式の場合は、空の DOMNodeList を返します。 expression が不正な形式な場合や contextnode が無効な場合は、 DOMXPath::query() は FALSE を返します。

サンプル

例1 すべての英語の書籍を取得する

$doc = new DOMDocument; // 空白に悩まされたくはありません $doc->preserveWhiteSpace = false; $doc->load('book.xml'); $xpath = new DOMXPath($doc); // root 要素から開始します $query = '//book/chapter/para/informaltable/tgroup/tbody/row/entry[. = "en"]'; $entries = $xpath->query($query); foreach ($entries as $entry) {     echo "Found {$entry->previousSibling->previousSibling->nodeValue}," .          " by {$entry->previousSibling->nodeValue}\n"; }

上の例の出力は以下となります。

Found The Grapes of Wrath, by John Steinbeck Found The Pearl, by John Steinbeck

式を短くするため、contextnode パラメータを使用することも可能です。

$doc = new DOMDocument; $doc->preserveWhiteSpace = false; $doc->load('book.xml'); $xpath = new DOMXPath($doc); $tbody = $doc->getElementsByTagName('tbody')->item(0); // tbody ノードからの相対クエリです $query = 'row/entry[. = "en"]'; $entries = $xpath->query($query, $tbody); foreach ($entries as $entry) {     echo "Found {$entry->previousSibling->previousSibling->nodeValue}," .          " by {$entry->previousSibling->nodeValue}\n"; }

参考

  • DOMXPath::evaluate() - 与えられた XPath 式を評価し、可能であれば結果を返す
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール