PHP使用DOM解析器获取自定义属性值

时间:2015-04-10 12:21:03

标签: php html arrays simple-html-dom

我使用simple dom parser进行一些报废但未能获得自定义属性(颜色)。我能够让其他人像h3的内心文本那样有价值。

我的dom很简单,看起来像这样

<article data-color="red">
<h1>Hi </h1>
</article>
<article data-color="blue">
<h1>Hi 2</h1>
</article>
<article data-color="gold">
<h1>Hi 3</h1>
</article>

到目前为止我的代码

 $dom = $html->find('article');

 $arr = array();

foreach ($dom as $data) {
    if(isset($data->find('h3',0)->plaintext)){
        $h3 = $data->find(h3',0)->plaintext;
    }
}

    $arr[] = array(
        "title" => $h3,
    /* "color" => $color */
    );

echo json_encode(array_values($arr));

1 个答案:

答案 0 :(得分:3)

如果您在数据属性属性之后并且由于DOM元素属性被视为该simple-html-dom对象的属性,那么只需像往常一样处理带连字符的属性:

$object->{'property-with-a-hyphen'}

所以当你在代码中应用它时:

foreach($dom as $data) {

    $color = '';
    if(isset($data->{'data-color'})) {
        $color = $data->{'data-color'};
    }

    // array declarations below
    $arr[] = array(
        'color' => $color,
    );
}