XMLReader::next()函数用于将指针移动到下一个节点。它返回一个布尔值,表示是否成功移动到下一个节点。
使用方法如下:
bool XMLReader::next ( void )
参数:该函数没有参数。
返回值:如果成功移动到下一个节点,则返回true;如果没有下一个节点或移动失败,则返回false。
示例:
$xml = '<root>
<book>
<title>PHP Basics</title>
<author>John Doe</author>
</book>
<book>
<title>Advanced PHP</title>
<author>Jane Smith</author>
</book>
</root>';
$reader = new XMLReader();
$reader->xml($xml);
while ($reader->read()) {
if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'book') {
while ($reader->read()) {
if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'title') {
$reader->read(); // 移动到<title>节点的文本节点
echo "Title: " . $reader->value . "\n";
}
if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'author') {
$reader->read(); // 移动到<author>节点的文本节点
echo "Author: " . $reader->value . "\n";
}
if ($reader->nodeType == XMLReader::END_ELEMENT && $reader->name == 'book') {
break; // 结束当前<book>节点的解析
}
}
}
}
在上面的示例中,我们首先创建一个XMLReader对象并将XML字符串加载到它中。然后,我们使用while循环遍历XML文档中的节点。当我们遇到