PHP registerXPathNamespace()Функции
Справочное руководство по PHP SimpleXML
Примеры
Создайте контекст пространства имен для следующего XPath-запроса:
<?php
$xml=<<<XML
<book xmlns:chap="http://example.org/chapter-title">
<title>Моя книга</title>
<chapter id="1">
<chap:title>Глава 1</chap:title>
<para>Donec velit. Nullam eget tellus...</para>
</chapter>
<chapter id="2">
<chap:title>Глава 2</chap:title>
<para>Lorem ipsum dolor sit amet....</para>
</chapter>
</book>
XML;
$sxe=new SimpleXMLElement($xml);
$sxe->registerXPathNamespace('c','http://example.org/chapter-title');
$result=$sxe->xpath('//c:title');
foreach ($result as $title)
{
echo $title . "<br>";
}
?>
$xml=<<<XML
<book xmlns:chap="http://example.org/chapter-title">
<title>Моя книга</title>
<chapter id="1">
<chap:title>Глава 1</chap:title>
<para>Donec velit. Nullam eget tellus...</para>
</chapter>
<chapter id="2">
<chap:title>Глава 2</chap:title>
<para>Lorem ipsum dolor sit amet....</para>
</chapter>
</book>
XML;
$sxe=new SimpleXMLElement($xml);
$sxe->registerXPathNamespace('c','http://example.org/chapter-title');
$result=$sxe->xpath('//c:title');
foreach ($result as $title)
{
echo $title . "<br>";
}
?>
Запустить пример »
Определение и использование
Функция registerXPathNamespace() создаёт контекст пространства имён для следующего XPath-запроса.
Эта функция полезна, если префикс пространства имён изменён в XML-документе. Функция registerXPathNamespace() создаст указанный префикс пространства имён, позволяя получать доступ к затронутым XML-узлам без слишком больших изменений в коде приложения.
Синтаксис
registerXPathNamespace(prefix,ns);
| Parameters | Описание |
|---|---|
| префикс | Обязательный. Задаёт префикс пространства имёнns, используемый в XPath-запросе для указанного пространства имён. |
| ns | Обязательный. Задаёт пространство имён, используемое для XPath-запроса. |
Технические детали
| Возвращаемое значение: | Возвращает TRUE при успехе или FALSE при неудаче. |
|---|---|
| Версия PHP: | 5.2+ |
Справочное руководство по PHP SimpleXML Другие расширения