PHP中DOM解析器的SAX解析器脚本

PHP中DOM解析器的SAX解析器脚本,php,dom,sax,Php,Dom,Sax,我的DOM文档代码需要SAX解析器代码 如果有人愿意为我提供同样的代码 function flipkart_price_fetch($sel_image){ global $sel_image; $price = file_get_contents("{$sel_image['flipkart_content']}"); $dom = new DOMDocument(); @$dom->loadHTML($price); $di

我的DOM文档代码需要SAX解析器代码

如果有人愿意为我提供同样的代码

 function flipkart_price_fetch($sel_image){  
    global $sel_image;  
    $price = file_get_contents("{$sel_image['flipkart_content']}");  
    $dom = new DOMDocument();  
    @$dom->loadHTML($price);  
    $divs = $dom->getElementsByTagName('span');  
    foreach($divs as $div){  
        if($div->getAttribute('class') == 'fk-font-verybig pprice fk-bold'){  
            echo $div->nodeValue;  
            }  
        }  
    } 

我不认为DOM是这里的性能猪,而是所有跨元素节点的迭代。DOMXpath允许使用Xpath表达式直接获取节点:

$dom = new DOMDocument();  
@$dom->loadHTMLFile($sel_image['flipkart_content']);  
$xpath = new DOMXpath($dom);

// this matches the node by the class name "pprice"
$price = $xpath->evaluate(
  'string(.//span[contains(concat(" ", normalize-space(@class), " "), " pprice ")])'
);

echo $price;
在SO和/或Web上搜索Xpath

您的源中还有一些其他错误:

全球$SELU图像

$sel_image是函数参数,这里没有理由将其设置为全局状态

{$sel_图像['flipkart_内容']}

此字符串仅包含变量,直接使用变量$sel_image['flipkart_content']或将其转换为字符串$sel_image['flipkart_content']

$price=file_get_contents{$sel_image['flipkart_content']}

这里不需要单独加载文件/url-使用DOMDocument::loadHTMLFile


为什么您认为您需要使用SAX?我在这里使用了DOM,它需要花费大量的时间来解析。。所以我在谷歌上搜索发现SAX解析器比DOM更快。我需要在我的网页上更快地获得结果。。你有什么建议吗?我主要使用DOM+Xpath。XMLReader用于真正大的XML文件,而DOM+Xpath用于部分。我不确定SAX或XMLReader是否能够处理HTML。先生,您能否提供此代码的解决方案以更快地解析它。。我迫不及待地想让它发生。谢谢你的反馈。。我制作了$SELU image global,因为我在其他代码的其他地方也使用了它。。关于错误2和3,我将确保