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.DOMElement::getElementsByTagNameNS
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
DOMElement::getElementsByTagNameNS
Референца за `domelement.getelementsbytagnamens.php` со подобрена типографија и навигација.
DOMElement::getElementsByTagNameNS
класата mysqli_driver
DOMElement::getElementsByTagNameNS — Земи елементи по namespaceURI и localName
= NULL
$namespace, string $localName): DOMNodeList
Оваа функција ги презема сите потомствени елементи со даден
localName and namespace.
Параметри
namespace-
URI просторот за имиња на елементите за кои треба да се совпаѓаат. Специјалната вредност
"*"се совпаѓа со сите простори за имиња. Поминувањеnullсе совпаѓа со празниот простор за имиња. localName-
Локалното име на елементите за кои треба да се совпаѓаат. Специјалната вредност
"*"се совпаѓа со сите локални имиња.
Вратени вредности
Оваа функција враќа нова инстанца на класата DOMNodeList од сите совпаднати елементи по редоследот по кој се среќаваат во претходно нарачано поминување на ова дрво на елементи.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.0.3 |
namespace сега е null.
|