PHPerKaigi 2024

DOMElement::getElementsByTagNameNS

(PHP 5, PHP 7, PHP 8)

DOMElement::getElementsByTagNameNSİsmi ve isim alanı belirtilen elemanları döndürür

Açıklama

public DOMElement::getElementsByTagNameNS(?string $isimalanı, string $isim): DOMNodeList

Düğümün ismi ve isim alanına dahil alt düğümleri rastlandıkları sıra ile ve alt düğümleri ile içeren yeni bir DOMNodeList nesnesi döndürür.

Bağımsız Değişkenler

isimalanı

Elemanların eşleştirileceği isim alanını betimleyen adres. Bütün isim alanları anlamında "*" belirtilebilir. Boş isim alanı ile eşleşme için null aktarılabilir.

isim

Eşleştirilecek elemanın ismi. Tüm yerel adları döndürmek için "*" belirtilebilir.

Dönen Değerler

Eşleşen tüm elemanları içeren yeni bir DOMNodeList nesnesi döner.

Sürüm Bilgisi

Sürüm: Açıklama
8.0.3 isimalanı artık null olabiliyor.

Ayrıca Bakınız

add a note

User Contributed Notes 1 note

up
2
spam at chovy dot com
14 years ago
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.
To Top