【问题标题】:PHPHtmlParser getAttribute not works for custom attributesPHPHtmlParser getAttribute 不适用于自定义属性
【发布时间】:2016-07-05 05:11:02
【问题描述】:

我有一些带有自定义属性的 HTML,并尝试使用组件 PHPHtmlParser 对其进行解析。通过此组件创建的整个项目。这是给出的问题示例。

use PHPHtmlParser\Dom;
class Parsemydiv {
    function parseAttr()
    {
        $str='<div otop="20" oleft="20" name="info">
            <img src="example.jpg">
        </div>';
        $dom = new Dom();
        $dom->loadStr($str);
        $otop = $dom->getAttribute("otop");
        $name = $dom->getAttribute("name");
        echo "Name: " . $name  . PHP_EOL;
        echo "Top: " . $otop . PHP_EOL;
        echo "Left: " . $oleft . PHP_EOL;

    }
}

输出是: 名称:信息 最佳: 左:

getAttribute 无法获取自定义属性。

【问题讨论】:

  • 如果你想要有效的 html 你应该使用 data-* 属性:data-otop="20" data-oleft="20"

标签: php domparser getattribute


【解决方案1】:

既然 PHP 已经内置了对 DOM 的支持,为什么还要使用 3rd 方库来解析 DOM?我建议改为学习native functions

$str='<div otop="20" oleft="15" name="info">
        <img src="example.jpg">
    </div>';
$doc = new DOMDocument();
$doc->loadHTML($str);
$div = $doc->getElementsByTagName('div')[0];
$otop = $div->getAttribute('otop');
$oleft = $div->getAttribute('oleft');

echo "otop=$otop, oleft=$oleft"; //otop=20, oleft=15

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-28
    • 2011-10-22
    相关资源
    最近更新 更多