当有多个 类 时,如何在简单 html dom 中使用查找方法
How to use find method in simple html dom when have multiple classes
如果我有这样的元素
<h1 class="first second last">
<p>Paragraph</p>
</h1>
我只想对这三个 类 使用查找方法。我这样试过:
$html->find('first.second.last',0)->plaintext;
但它不起作用。有什么想法可以针对这种情况使用 find 方法吗?
试试这个代码:
<script type="text/javascript">
alert(document.getElementsByClassName("first second last"));
</script>
使用此代码,您可以获得 dom 元素。
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会有用。
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);
如果我有这样的元素
<h1 class="first second last">
<p>Paragraph</p>
</h1>
我只想对这三个 类 使用查找方法。我这样试过:
$html->find('first.second.last',0)->plaintext;
但它不起作用。有什么想法可以针对这种情况使用 find 方法吗?
试试这个代码:
<script type="text/javascript">
alert(document.getElementsByClassName("first second last"));
</script>
使用此代码,您可以获得 dom 元素。
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会有用。
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);