通过DOM结构点位节点,在数据量很大的情况下速度下降的厉害。解决方法是XPath。
XPath作用:用于快速定位节点
XPath实现查询功能:
<?php
//XPath
$doc = new DOMDocument();
$doc->preserveWhiteSpace=false;
$doc->load('books.xml');
//通过文档生成此文档的路径
$xpath = new DOMXPath($doc);
//查询所有的书
$query = "/books/book/name";
$result = $xpath->query($query);
foreach ($result as $bookname){
echo $bookname->nodeValue . '<br/>';
}
echo "<br/>==========================================<br/>";
//查询所有静态语言的图书
$query = "/books/book[@type='静态语言']/name";
$result = $xpath->query($query);
foreach ($result as $bookname){
echo $bookname->nodeValue . '<br/>';
}
echo "<br/>==========================================<br/>";
//通过位置来查询
$query = "/books/book[position()=3]/name";
$result = $xpath->query($query);
foreach ($result as $bookname){
echo $bookname->nodeValue . '<br/>';
}
echo "<br/>==========================================<br/>";
执行结果: