如何使用dom文档获取div类值
我需要回显此值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值。
我应该做些什么改变
答案 0 :(得分:1)
注意::: 这是一个JAVASCRIPT解决方案......不是PHP DOMDOCUMENT解决方案
试试这个HTML:
<div id="ME" class="mbs fcg">4,458 members</div>
...和这个Javascript:
var WANTED_TEXT = document.getElementById('ME').firstChild.nodeValue;
EDIT2:
如果您真的想要,要从所有出现的元素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>');
}
这应该回应Collection中所有元素的纯文本。
答案 1 :(得分:0)
我认为您需要使用id
定位单个div
,例如:
< div id="my_id_name" class="mbs fcg">4,458 members< /div>
答案 2 :(得分:0)
您将需要使用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;
}
}