函数名称:DOMDocument::getElementsByTagNameNS()
适用版本:所有版本的 PHP(包括 PHP 5 和 PHP 7)
用法: DOMDocument::getElementsByTagNameNS() 函数用于获取指定命名空间和标签名称的元素节点。
语法: DOMNodeList|false DOMDocument::getElementsByTagNameNS( string $namespaceURI , string $localName )
参数:
- $namespaceURI:所需的命名空间 URI。如果设置为 "*",则返回所有命名空间的元素节点。
- $localName:所需的标签名称。
返回值: 如果成功找到匹配的节点,则返回一个 DOMNodeList 对象,该对象包含所有匹配的元素节点。如果没有找到匹配的节点,则返回 false。
示例:
$xml = <<<XML
<library xmlns:book="http://example.com/book">
<book:book>
<book:title>PHP Basics</book:title>
<book:author>John Doe</book:author>
</book:book>
<book:book>
<book:title>Advanced PHP</book:title>
<book:author>Jane Smith</book:author>
</book:book>
</library>
XML;
$dom = new DOMDocument();
$dom->loadXML($xml);
$books = $dom->getElementsByTagNameNS("http://example.com/book", "book");
foreach ($books as $book) {
$title = $book->getElementsByTagNameNS("http://example.com/book", "title")->item(0)->textContent;
$author = $book->getElementsByTagNameNS("http://example.com/book", "author")->item(0)->textContent;
echo "Title: $title\nAuthor: $author\n\n";
}
输出结果:
Title: PHP Basics
Author: John Doe
Title: Advanced PHP
Author: Jane Smith
以上示例代码演示了如何使用 DOMDocument::getElementsByTagNameNS() 函数来获取指定命名空间和标签名称的元素节点。在示例中,我们首先加载了一个 XML,然后使用 getElementsByTagNameNS() 方法获取所有具有 "http://example.com/book" 命名空间和 "book" 标签名称的元素节点。接下来,通过迭代找到的节点列表,使用 getElementsByTagNameNS() 方法进一步获取每个节点中的 "title" 和 "author" 子元素的文本内容,并将其输出到屏幕上。