SimpleXMLElement::getDocNamespaces

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SimpleXMLElement::getDocNamespaces 返回文档中声明的命名空间

描述

public SimpleXMLElement::getDocNamespaces(bool $recursive = false, bool $fromRoot = true): array|false

返回文档中声明的命名空间

参数

recursive

如果指定,则返回父节点和子节点中声明的所有命名空间。否则,仅返回根节点中声明的命名空间。

fromRoot

允许您递归检查子节点下的命名空间,而不是从 XML 文档的根节点开始。

返回值

getDocNamespaces 方法返回一个包含命名空间名称与其关联 URI 的 array

示例

示例 #1 获取文档命名空间

<?php

$xml
= <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns">
<p:person id="1">John Doe</p:person>
<p:person id="2">Susie Q. Public</p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getDocNamespaces();
var_dump($namespaces);

?>

上面的示例将输出

array(1) {
   ["p"]=>
   string(21) "http://example.org/ns"
}

示例 #2 使用多个命名空间

<?php

$xml
= <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns" xmlns:t="http://example.org/test">
<p:person t:id="1">John Doe</p:person>
<p:person t:id="2" a:addr="123 Street" xmlns:a="http://example.org/addr">
Susie Q. Public
</p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getDocNamespaces(TRUE);
var_dump($namespaces);

?>

上面的示例将输出

array(3) {
  ["p"]=>
  string(21) "http://example.org/ns"
  ["t"]=>
  string(23) "http://example.org/test"
  ["a"]=>
  string(23) "http://example.org/addr"
}

参见

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top