<?php
$xml = <<<EOD
<book xmlns:chap="http://example.org/chapter-title">
<title>XPath Kitabı</title>
<chapter id="1">
<chap:title>1. Fasıl</chap:title>
<para>Önemli ifade çeşitlerinden biri konumsal yoldur. Bir konumsal
yol bağlamsal düğüme göreli olarak bir düğüm kümesini seçer. İfadenin
konumsal yol olduğu durumda değerlendirme sonucu, konumsal yol
tarafından seçilen düğümleri içeren düğüm kümesidir. Konumsal yollar
düğüm kümelerini süzmekte kullanılan ifadeleri dönüşümlü olarak
içerebilir. İki çeşit konumsal yol vardır: Göreli konumsal yollar ve
mutlak konumsal yollar.</para>
</chapter>
<chapter id="2">
<chap:title>2. Fasıl</chap:title>
<para>Bir göreli konumsal yol, / imleriyle birbirlerinden ayrılmış bir
veya daha fazla konumdan oluşur. Göreli konumsal yoldaki bu konumlar
soldan sağa birlikte bir bütün oluştururlar. Her konumda bağlamsal
düğüme göreli bir düğüm kümesi seçilir ve kümedeki her düğüm sonraki
konumun bağlamsal düğümü olur. Bir mutlak konumsal yol / iminden sonra
gelen bir göreli konumsal yoldan oluşur. Tek başına / imi, bağlamsal
düğümü içeren belgenin kök düğümünü seçer. Kök düğüm, bu imden sonra
gelen göreli konumsal yolun ilk konumunun bağlamsal düğümü olur.</para>
</chapter>
</book>
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";
}
?>
Yukarıdaki örneğin çıktısı:
Örnekte, bir isim alanının chap
önekiyle bir XML
belgede nasıl gösterildiğine dikkat edin. Bu belgenin (veya bir
benzerinin) geçmişte, aynı isim alanı için c
önekini
kullanmış olduğunu varsayalım. Önek değiştiğinden XPath ifadesi beklenen
sonucu vermeyecek ve ifadenin değiştirilmesi gerekecektir. İşte bu
noktada registerXPathNamespace
ile bu gibi önek
değişikliklerinde ifadenin değiştirilmesi gereğini ortadan kaldırmak
mümkün olur.