<?php
$xml = <<<EOD
<book xmlns:chap="http://example.org/chapter-title">
    <title>My Book</title>
    <chapter id="1">
        <chap:title>Chapter 1</chap:title>
        <para>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.</para>
    </chapter>
    <chapter id="2">
        <chap:title>Chapter 2</chap:title>
        <para>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.</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";
}
?>
     
    El ejemplo anterior mostrará:
     Observe cómo el documento XML mostrado en este ejemplo fija un espacio de
     nombres con el prefijo chap. Imagine que este documento (o
     otro similar) pudiera haber utilizado un prefijo c
     en el pasado para el mismo espacio de nombres. Dado que ha cambiado, la consulta
     XPath no retornaría los resultados apropiados y la consulta debería
     ser modificada. El uso de registerXPathNamespace
     evita las modificaciones futuras de la consulta incluso si el proveedor
     cambia el prefijo de espacio de nombres.