是否有一种更简洁/更好的方式来遍历我的 DomElement 对象?
特别是,当我希望获得值 4、5 和 6 时,我认为必须有比->nextSibling->nextSibling->nextSibling->nextSibling
etc 更好的获取节点的方法......?有没有一种方法可以让我指定我需要的兄弟姐妹?
public function fire()
{
$url = "http://test.com";
$html = $this->downloadPage($url);
$doc = new DOMDocument();
@$doc->loadHTML($html);
$xpath = new DOMXpath($doc);
$myXpath = $xpath->query('//*[@id="test_table"]');
if (!is_null($myXpath))
{
$domElement = $myXpath->item(0);
$parent = $domElement->firstChild->nextSibling->nextSibling->firstChild->nextSibling;
$value1 = $parent->nodeValue;
$value2 = $parent->nextSibling->nodeValue;
$value3 = $parent->nextSibling->nextSibling->nodeValue;
$this->info("Value 1: " . $value1);
$this->info("Value 2: " . $value2);
$this->info("Value 3: " . $value3);
}
else {
$this->info("Error");
}
}
该表具有以下结构
<table id="test_table">
<tr>
<td width="40"></td> // Dont Want
<td width="55"></td> // Dont Want
<td width="55"></td> // Dont Want
<td width="55"></td> // Dont Want
</tr>
<!--A comment--> // Dont Want
<tr>
<td>AM</td>
<td class="pricing">aaa</td> // Value1
<td class="pricing">bbb</td> // Value2
<td class="pricing">ccc</td> // Value3
</tr>
<tr>
<td>PM</td>
<td class="pricing">ddd</td> // Value4
<td class="pricing">eee</td> // Value5
<td class="pricing">fff</td> // Value6
</tr>
<!--Updated 10:31 18/10/2013--> // I want this date comment
<tr>
<td> </td> // Dont Want
<td colspan="3" align="right"></td> // Dont Want
</tr>
</table>