• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • SimpleXMLElement::getDocNamespaces()

    (PHP 5 >= 5.1.2, PHP 7)

    Returns namespaces declared in document

    说明

    publicSimpleXMLElement::getDocNamespaces([bool $recursive= FALSE[,bool $from_root= TRUE]]): array

    Returns namespaces declared in document

    参数

    $recursive

    If specified, returns all namespaces declared in parent and child nodes. Otherwise, returns only namespaces declared in root node.

    $from_root

    Allows you to recursively check namespaces under a child node instead of from the root of the XML doc.

    返回值

    ThegetDocNamespacesmethod returns an array of namespace names with their associated URIs.

    范例

    Example #1 Get document namespaces

    <?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"
    }
    

    Example #2 Working with multiple namespaces

    <?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"
    }
    

    更新日志

    版本说明
    5.4.0 Added$from_rootparameter.

    参见

    • SimpleXMLElement::getNamespaces() Returns namespaces used in document
    • SimpleXMLElement::registerXPathNamespace() Creates a prefix/ns context for the next XPath query