DOMDocument::getElementsByTagNameNS
(PHP 5, PHP 7, PHP 8)
DOMDocument::getElementsByTagNameNS — 指定した名前空間で、タグ名に対応するすべての要素を検索する
説明
指定したローカル名および名前空間 URI に一致するすべての要素の DOMNodeList を返します。
パラメータ
namespace
-
条件に一致する要素の名前空間 URI。
"*"
はすべての名前空間に一致します。null
を渡すと、空の名前空間に一致します。 localName
-
条件に一致する要素のローカル名。
"*"
はすべてのローカル名に一致します。
戻り値
一致するすべての要素を含む、新しい DOMNodeList オブジェクトを返します。
変更履歴
バージョン | 説明 |
---|---|
8.0.3 |
namespace は、nullable になりました。
|
例
例1 すべての XInclude 要素を取得する
<?php
$xml = <<<EOD
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Books of the other guy..</title>
<para>
<xi:include href="book.xml">
<xi:fallback>
<error>xinclude: book.xml not found</error>
</xi:fallback>
</xi:include>
<include>
This is another namespace
</include>
</para>
</chapter>
EOD;
$dom = new DOMDocument;
// 上で定義した XML 文字列を読み込みます
$dom->loadXML($xml);
foreach ($dom->getElementsByTagNameNS('http://www.w3.org/2001/XInclude', '*') as $element) {
echo 'local name: ', $element->localName, ', prefix: ', $element->prefix, "\n";
}
?>
上の例の出力は以下となります。
local name: include, prefix: xi local name: fallback, prefix: xi
+add a note
User Contributed Notes 1 note
RiKdnUA at mail dot ru ¶
9 years ago
<?php
ini_set("display_errors","on"); error_reporting(-1);
$doc="<?xml version='1.0' encoding='WINDOWS-1251'?>
<htm:body xmlns:htm='w3.org'>
<span>Text</span>
<htm:img htm:src='imgSrc'/>
</htm:body>";
$dom = new DOMDocument('1.0','WINDOWS-1251');
$dom->preserveWhiteSpace=false;
$dom->loadXML($doc);
$domList=$dom->getElementsByTagNameNS('*','*');//all namespaces, all local names
echo "Количество элементов. The number of elements: ".$domList->length."<br />";// 2 (not 3)
for ($i=0; $i<$domList->length; $i++)
{echo "Элемент $i. The element $i: ".$domList->item($i)->tagName."<br />";
}
/*
Tested in PHP 5.2.9-2 and 5.2.17
The above example will output:
Количество элементов. The number of elements: 2
Элемент 0. The element 0: htm:body
Элемент 1. The element 1: htm:img
Вывод. Не найден элемент span
Conclusion. Not found span element
*/
?>
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google