你可以使用XPath直接搜索XML ...喜欢的东西:
$dom = new DomDocument();
$dom->loadXml($feedXml);
$xpath = new DomXpath($dom);
$query = '//item[contains(title, "foo")] | //item[contains(description, "foo")]';
$matchingNodes = $xpath->query($query);
然后,$matchingNodes
将全部匹配item
节点的DomNodeList
。然后,你可以保存与数据库中的...
所以这个调整到你的真实世界的例子,你既可以构建查询为你做所有的搜索在一个镜头:
$query = array();
foreach($keywords as $keyword) {
$query[] = '//item[contains(title, "'.$keyword.'")]';
$query[] = '//item[contains(description, "'.$keyword.'")]';
}
$query = implode('|', $query);
或者只是针对每个关键字重新进行查询......就个人而言,我会构建一个巨大的查询,因为所有匹配都是在合适的C代码中完成的(因此应该比在php中循环并在那里汇总结果更有效)。 ..