无法使用简单的 HTML DOM 访问 PHP 中带有破折号的属性值

Unable to access value of attribute with dash in PHP using simple HTML DOM

我正在尝试使用 PHP 简单 HTML DOM 获取一些 html 值并将它们存储在 PHP 数组中。

在 HTML 页面内,我想要 parse/fetch 以下内容 :

<li id="1" data-name="Jason" class="result-names">
<li id="2" data-name="John" class="result-names">
<li id="3" data-name="Elco" class="result-names">
<li id="5" data-name="Dana" class="result-names">

我能够捕获到"id"值和"class"值,但此时我似乎无法获取"data-name"的值。我用于尝试实现此目的的代码:

<?php
require_once('simple_html_dom.php');
$dom = file_get_html('http://localhost/names.html');
foreach($dom->find('li[class=result-names]') as $results) {
    $item['id']     = $results->id;
    $item['name'] = $results->data-name;          //this does not work 
    $item['class'] = $results->class;
    $articles[] = $item;
}

echo "<pre>";
print_r($articles);
echo "</pre>";

使用:

$item['name'] = $results->getAttribute("data-name");

- 是减法运算符,它不能用作标识符的一部分。你写的内容被解析为:

$item['name'] = ($results->data) - name;

试一试:

$item['name'] = $results->attr['data-name'];