DOMElement
在线手册:中文  英文

DOMElement::getElementsByTagNameNS

(PHP 5)

DOMElement::getElementsByTagNameNSGet elements by namespaceURI and localName

说明

public DOMNodeList DOMElement::getElementsByTagNameNS ( string $namespaceURI , string $localName )

This function fetch all the descendant elements with a given localName and namespaceURI.

参数

namespaceURI

The namespace URI.

localName

The local name. Use * to return all elements within the element tree.

返回值

This function returns a new instance of the class DOMNodeList of all matched elements in the order in which they are encountered in a preorder traversal of this element tree.

参见


DOMElement
在线手册:中文  英文

用户评论:

spam at chovy dot com (2009-06-03 17:36:24)

I had some difficulty stripping all default NS attributes for an ns-uri in one shot, the following will work though...first strip the documentElement namespace, then getElementsByTagNameNS() -- the documentation should reflect that the 2nd argument is actually the name of the tag, not the local namespace prefix as I first expected:

<?php

function strip_default_ns$xml null$ns_uri 'http://example.com/XML-Foo' ) {
    
$ns_local '';
    
$ns_tag '*';
    
    if ( empty(
$xml) ) return false;
    
    
//remove document namespace
    
$dom = new DOMDocument();
    
$dom->loadXML($xml);
    
$dom->documentElement->removeAttributeNS($ns_uri$ns_local);
    
    
//strip element namespaces
    
foreach ( $dom->getElementsByTagNameNS($ns_uri$ns_tag) as $elem ) {
        
$elem->removeAttributeNS($ns_uri$ns_local);
    }

    return 
$dom->saveXML();
}

$stripped_xml strip_default_ns($the_xml);

?>

$stripped_xml can now take advantage of running XPath queries on it for the NULL namespace.

易百教程