如何使用 dom 文档获取 div class 值

how to get div class value using dom document

如何使用 dom 文档

获取 div class 值

我需要回应这个值4,458 members

来自下面的代码

< div class="mbs fcg">4,458 members< /div>

现在我的原始密码是

$links = $dom->getElementsByTagName('div');

foreach ($links as $link){

echo $link->nodeValue;
echo $link->getAttribute('class');

}

如何定位这个特定的 class = mbc fcg

现在用我现在的代码我得到了所有 div 值。

我应该做什么改变

我认为您需要使用 id 来定位单个 div,例如:

< div id="my_id_name" class="mbs fcg">4,458 members< /div>

注意::: 这是一个 JAVASCRIPT 解决方案...不是 PHP 文档解决方案

试试这个 HTML:

<div id="ME" class="mbs fcg">4,458 members</div>

...还有这个 Javascript:

var WANTED_TEXT = document.getElementById('ME').firstChild.nodeValue;

编辑 2:

如果你真的想要,从所有出现的具有 class='mbs cfg' 的元素中获取所有文本节点......然后尝试以下 HTML:

<div class="mbs fcg">4,458 members</div>

...还有这个 Javascript:

var Collection = document.getElementsByClassName('mbs fcg');

for(i=0; i<Collection.length; i++) {
    Texts = Collection[i].firstChild.nodeValue;
    document.write('<p>'+Texts+'</p>');
}

这应该与集合中所有元素的纯文本相呼应。

您将需要使用 DOMXPath,它需要一个 DOMDocument 实例

$xpath   = new DOMXPath( $dom );
// if the className doesn`t changes
$members = $xpath->query( '//div[@class="mbs fcg"]' );
// if the class name changes ex. class="mbs fcg my-other class-name"
$members = $xpath->query( '//div[contains(@class,"mbs fcg")]' );

或者,如果您想遍历整个 div,您可以尝试

$divs = $dom->getElementsByTagName( 'div' );
foreach( $divs as $div ){
    // if the className doesn`t changes
    if( $div->getAttribute( 'class' ) === 'mbs fcg' ){
        echo $div->nodeValue;
    }
    // if the class name changes ex. class="mbs fcg my-other class-name"
    if( strpos( $div->getAttribute( 'class' ), 'mbs fcg' ) !== false ){
        echo $div->nodeValue;
    }
}