Php 解析&;查询XML文件

Php 解析&;查询XML文件,php,xml,Php,Xml,我在PHP中使用以下代码来解析XML文件并从文件中检索特定信息 $dom = new DOMDocument(); $xpath = new DOMXPath($dom); $reader = new XMLReader(); $reader->open('File.xml'); while ($reader->read()) { if ($reader->nodeType == XMLReader::ELEMENT && $reader->

我在PHP中使用以下代码来解析XML文件并从文件中检索特定信息

$dom    = new DOMDocument();
$xpath  = new DOMXPath($dom);
$reader = new XMLReader();
$reader->open('File.xml');
while ($reader->read()) {
    if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'Hotel') {
        $node = $dom->importNode($reader->expand(), true);
        $dom->appendChild($node);
        $h1name = $xpath->evaluate('string(/Hotel[HotelCode = "'.$hotelCodes[0].'"]/HotelName)', $node);
        $dom->removeChild($node);
        if ($h1name) {
         $reader->close();
         break;
        }
    }
}
我使用的是带有CENTOS x64、SSD驱动器、1GB ram和1.8 ghz CPU的VPS。 代码可以工作,但速度非常慢。 如果我解析一个20MB的文件,加载页面大约需要1分钟


能否请您帮助改进代码,以便我能够获得更快的工作解决方案?

我认为这是一个重复的问题,这里的答案可能与您当前的源代码相同,如果您在链接中检查我的答案,您将看到一个优化。使用
$reader->next('Hotel')
直接转到下一个Hotel节点。@ThW$reader->next('Hotel')应该在哪里;在$node=$dom->importNode($reader->expand(),true)之后是否合适?