関数・クラス解説

SimpleXMLElement::registerXPathNamespace

version:PHP 5 >= 5.1.0, PHP 7 (公式)

次の XPath クエリ用の prefix/ns コンテキストを作成する

公式リファレンス

書式

public SimpleXMLElement::registerXPathNamespace ( string $prefix , string $ns ) : bool

説明

次の XPath クエリ用の prefix/ns コンテキストを作成します。特にこれが有用なのは、 XML ドキュメントの提供者が名前空間プレフィックスを変更したような場合です。 registerXPathNamespace はプレフィックスを作成して名前空間に関連付け、 そのプレフィックスで名前空間のノードにアクセスできるようにします。 提供者側がプレフィックスを変更したとしても、コードを書き換える必要はありません。

パラメータ

prefix
ns で指定した名前空間への XPath クエリで使用する、 名前空間プレフィックス。
ns
XPath クエリで使用する名前空間。 これは XML ドキュメントで使用している名前空間と一致していなければなりません。 一致していない場合、prefix を使用した XPath クエリは何も結果を返しません。

返値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

サンプル

例1 XPath クエリで使用する名前空間プレフィックスの設定

$xml = <<     My Book              Chapter 1         Donec velit. Nullam eget tellus vitae tortor gravida scelerisque.              In orci lorem, cursus imperdiet, ultricies non, hendrerit et, orci.              Nulla facilisi. Nullam velit nisl, laoreet id, condimentum ut,              ultricies id, mauris.                   Chapter 2         Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin              gravida. Phasellus tincidunt massa vel urna. Proin adipiscing quam              vitae odio. Sed dictum. Ut tincidunt lorem ac lorem. Duis eros              tellus, pharetra id, faucibus eu, dapibus dictum, odio.      EOD; $sxe = new SimpleXMLElement($xml); $sxe->registerXPathNamespace('c', 'http://example.org/chapter-title'); $result = $sxe->xpath('//c:title'); foreach ($result as $title) {   echo $title . "\n"; }

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

Chapter 1 Chapter 2

上の例の XML ドキュメントでは、プレフィックス chap で名前空間を指定していることを確認しておきましょう。仮に、このドキュメント (あるいはよく似た別のドキュメント) が以前に同じ名前空間に対してプレフィックス c を使用していたとしましょう。プレフィックスが変わった時点で、 これまでの XPath クエリは正しい値を返さないようになります。 そしてクエリに対して何らかの変更が必要となります。 registerXPathNamespace を使用すると、 仮に名前空間プレフィックスが変更された場合でもクエリの変更する必要がなくなります。

参考

  • SimpleXMLElement::xpath() - XML データに Xpath クエリを実行する
  • SimpleXMLElement::getDocNamespaces() - ドキュメントで宣言されている名前空間を返す
  • SimpleXMLElement::getNamespaces() - ドキュメントで使用している名前空間を返す
  • ワード検索


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

    関数名アルファベット別

    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用の拡張モジュール