📅  最后修改于: 2023-12-03 15:18:26.073000             🧑  作者: Mango
moveToAttribute()
函数是 XMLReader
类的一个方法,用来将内部当前节点的光标移动到指定的属性。该函数接受一个整数型参数,表示要移动光标到的属性索引。
bool XMLReader::moveToAttribute ( int $index )
$index
: 整数型,表示要移动光标到的属性索引。属性索引从0开始计数。该方法返回一个布尔型,表示是否成功将光标移动到指定的属性。如果移动成功,返回 true
,否则返回 false
。
示例XML文档:
<bookstore>
<book category="children">
<title lang="en">The Cat in the Hat</title>
<author>Dr. Seuss</author>
<year>1957</year>
<price>10.99</price>
</book>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
</bookstore>
示例代码:
$reader = new XMLReader();
$reader->open('books.xml');
while ($reader->read()) {
// 判断当前节点是否为book元素
if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'book') {
// 移动光标到category属性
$reader->moveToAttribute( 'category' );
// 输出属性值
echo 'Category: ' . $reader->value . PHP_EOL;
// 移动光标到title元素
$reader->moveToElement();
// 输出title元素的lang属性
if ($reader->hasAttributes && $reader->moveToAttribute( 'lang' )) {
echo 'Lang: ' . $reader->value . PHP_EOL;
// 将光标移动回title元素
$reader->moveToElement();
}
// 输出title元素的文本内容
$reader->read();
echo 'Title: ' . $reader->value . PHP_EOL;
}
}
$reader->close();
示例输出:
Category: children
Lang: en
Title: The Cat in the Hat
Category: cooking
Lang: en
Title: Everyday Italian
moveToAttribute()
方法会返回 false
。moveToElement()
方法将光标移回到该元素节点再进行操作。