如果我有类似这样的元素
<h1 class="first second last">
<p>Paragraph</p>
</h1>
我想只为这三个类使用find方法。我试过这样:
$html->find('first.second.last',0)->plaintext;
但它不起作用。有没有想过在这种情况下使用find方法?
答案 0 :(得分:0)
试试这段代码:
<script type="text/javascript">
alert(document.getElementsByClassName("first second last"));
</script>
使用此代码,您可以获得dom元素。
答案 1 :(得分:0)
test.html:
<h1 class="first second last">
<p>Paragraph</p>
</h1>
正如我在php简单的html dom解析器中所做的那样。 我找到了一个替代解决方案,不是通过使用find方法查询我的查询,但我们可以使用以下方法检查多个类:
include "simple_html_dom.php";
$html = file_get_html('test.html');
$h1 = $html->find('h1');
foreach ($h1 as $h1) {
$h1Class = ($h1->class);
if($h1Class == 'first second last'){
$item['test'] = 'success';
}else{
$item['test'] = 'fail';
}
$ar[] = $item;
}
echo "<pre>";
print_r($ar);
答案 2 :(得分:-1)
getElementsByClassName()
是您的解决方案。
<script type="text/javascript">
var yourDomElement = document.getElementsByClassName("first second last"));
</script>
如果您使用的是jQuery,那么您也可以通过(.)
运算符获得相同的DOM: -
<script type="text/javascript">
var yourDomElement = (".first second last");
</script>
如果你想在不使用javascript和jQuery的情况下获取DOM,那么请使用以下代码: -
$dom_element_class = 'first second last';
$dom = new DOMDocument;
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$results = $xpath->query("//*[@class='" . $dom_element_class . "']");
if ($results->length > 0) {
echo $review = $results->item(0)->nodeValue;
}
此link将非常有用。