你可以使用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中循環並在那裏彙總結果更有效)。 ..