PHP registerXPathNamespace() 函数

定义和用法

registerXPathNamespace() 函数为下一个 XPath 查询创建命名空间上下文。

如果 XML 文档中的命名空间前缀发生变化,此函数非常有用。registerXPathNamespace() 函数将为指定的命名空间创建一个前缀,从而可以在不大量修改应用程序代码的情况下访问受影响的 XML 节点。

实例

为下一个 XPath 查询创建命名空间上下文:

<?php
$xml=<<<XML
<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...</para>
  </chapter>
  <chapter id="2">
    <chap:title>Chapter 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>";
  }
?>

运行实例

语法

SimpleXMLElement::registerXPathNamespace(prefix, ns)
参数 描述
prefix 必需。指定在 XPath 查询中用于 ns 中给定的命名空间的前缀。
ns 必需。指定用于 XPath 查询的命名空间。

技术细节

返回值: 成功时返回 TRUE,失败时返回 FALSE。
PHP 版本: 5.1+