PHPHtmlParser getAttribute不适用于自定义属性
问题描述:
我有一些HTML与自定义属性,并试图解析它与组件PHPHtmlParser。整个项目通过这个组件创建。以下是给出的问题示例。PHPHtmlParser getAttribute不适用于自定义属性
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无法获得自定义属性。
答
为什么使用第三方库解析DOM时,PHP内置支持?我建议学习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
如果你想有效的HTML *属性,你应该使用数据 - :'数据OTOP = “20” 数据oleft = “20”' –