嗨,我对这个DOMDocument世界非常陌生,我仍然在学习和寻找xpath在DOMDocument.The html中的使用有时会发生变化,所以preg_match不是一个好主意。.I需要从html中获取值,file.This是我想要得到的html的一部分。如果你能帮我我会很高兴的..。
<?php
$doc = new DOMDocument();
@$doc->loadHTML('<table cellspacing="0" cellpadding="0" align="center" class="results">
<tr class="header" bgcolor="#0000FF">
<td>
</td>
<td>Name/AKAs</td>
<td>Age</td>
<td>Location</td>
<td>Possible Relatives</td>
</tr>
<tr>
<td>1.</td>
<td>
<a class="LN" href=""><b>Iron, Man E</b></a>
</td>
<td align="center">54</td>
<td>
<a href="">Canada, AK</a><br />
<a href="">California, AK</a><br />
</td>
<td>
</td>
<td>
<a href="">View Details</a>
</td>
</tr>
<tr><td>2.</td>
<td>
<a class="LN" href=""><b>Bat, Man E</b></a></td>
<td align="center">26</td>
<td>
<a href="">Gotham, IA</a>
<br /></td>
<td>
<a href=""> View Details</a></td></tr>
</table>');
$xpath = new DOMXPath($doc);
$xquery = '//a[@class="LN"]';
$links = $xpath->query($xquery);
foreach ($links as $el) {
echo strip_tags($doc->saveHTML($el)).'<br/>';
}
?>如何获得以下值?我只能得到Iron, Man E和Bat, Man E
Iron, Man E | 54 | Canada, AK;California, AK
Bat, Man E | 26 | Gotham, IA发布于 2013-09-06 10:48:28
尝尝这个,
$xquery = '//a'; // you will get all anchor tags now
$links = $xpath->query($xquery);
foreach ($links as $el) {
echo strip_tags($doc->saveHTML($el)).'<br/>';
}试着用这个进入single line,
$xpath = new DOMXPath($doc);
$xquery = '//tr[td[a]]';
$links = $xpath->query($xquery);
foreach ($links as $el) {
echo strip_tags($doc->saveHTML($el)).'<br/>';
}发布于 2013-09-06 10:52:30
我的答案不是关于DomDocument查询,而是可以轻松地解决您的问题。
有一个名为SIMPLEHTMLDOM的图书馆!你可以用它做大事。
例子:
// Create DOM from URL or file
$html = file_get_html('http://www.google.com/');
// Find all images
foreach($html->find('img') as $element)
echo $element->src . '<br>';
// Find all links
foreach($html->find('a') as $element)
echo $element->href . '<br>';完整的文档(这个Lib的功能)是这里。
https://stackoverflow.com/questions/18655944
复制相似问题