Php 解析&;查询XML文件
我在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->
$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)之后是否合适?