【问题标题】:How to get a specific HTML Tag from HTML page source by Attribute value如何通过属性值从 HTML 页面源中获取特定的 HTML 标签
【发布时间】:2011-07-03 21:57:38
【问题描述】:

我是 stackoverflow 的新手,希望在这里找到我的解决方案 :)

使用 PHP,我想要一个 php 函数,例如:

function getHtmlTags($html_source, $tag='div', $by_attr="class", $attr_value="class_name"){
}

例如:如果找到 1,则应该像这样返回一个数组:

array([0] => '<div class="class_name">blah blah</div>');

我到处搜索:(没有找到解决方案!请帮助

【问题讨论】:

    标签: php regex xhtml curl html-parsing


    【解决方案1】:

    将您的 HTML 文档加载到 Document Object Model 并使用 XPath 根据给定的参数查找元素。

    关于您的正则表达式标签 - 在陷入噩梦之前阅读此内容 - RegEx match open tags except XHTML self-contained tags

    例如(警告 - 完全未经测试)

    /**
     * @return DOMNodeList
     */
    function getHtmlTags($html_source, $tag='div', $by_attr="class", $attr_value="class_name")
    {
        $document = new DOMDocument();
        if (!$document->loadHTML($html_source)) {
            throw new Exception('Invalid HTML source');
        }
    
        $xpath = new DOMXPath($doc);
    
        $query = sprintf('//%s[%s="%s"]', $tag, $by_attr, $attr_value);
    
        return $xpath->query($query);
    }
    

    【讨论】:

    • :D 对我来说看起来很棒,太多的正向解决方案。谢谢@PhilBrown
    猜你喜欢
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    • 2021-07-08
    • 1970-01-01
    • 2020-02-19
    • 1970-01-01
    • 2023-03-21
    • 2017-06-06
    相关资源
    最近更新 更多