我正在尝试从多个嵌套表结构中提取特定的链接属性。文档格式是旧的,这可以解释使用table元素来设计页面的过程。
以下是我尝试使用DOMXPath解析的相关文档:: 每个宽度为100%的表具有相同级别的嵌套子级,即tbody,tr,td,a,div等。
<table width="1000px">
<tbody>
<tr></tr>
<tr>
<td>
<br>
<span></span>
<span></span>
<div></div>
<div>
<div></div>
<div>
<center></center>
<hr>
<table width="100%"></table>
<table width="100%">
<tbody>
<tr>
<td>
<a name="A"></a>
<div style="width: 230px;">
<a href="owlbook/manufacturer.aspx?manufacturerId=124">Owl Chant Book</a>
<br>
</div>
</td>
</tr>
</tbody>
</table>
<table width="100%"></table>
<table width="100%"></table>
<table width="100%"></table>
<table width="100%"></table>
<table width="100%"></table>
<table width="100%"></table>
<table width="100%"></table>
<table width="100%"></table>
<table width="100%"></table>
<table width="100%"></table>
<table width="100%"></table>
<table width="100%"></table>
<table width="100%"></table>
<table width="100%"></table>
<table width="100%"></table>
</div>
</div>
</td>
</tr>
</tbody>
</table>
这是我用来解析它的代码。我试图得到href的值和嵌套在div内深处的锚的textValue。
public function parseManufacturerNodes($results) {
error_reporting(0);
$this->dom = new DOMDocument();
$this->dom->loadHTML($results);
$this->domQuery = new DOMXPath($this->dom);
$this->nodes = $this->domQuery->query("//table/tbody/tr/td/div/div/div/div/table/tbody/tr/td/div");
var_dump($this->nodes);
foreach ($this->nodes as $this->eachNodes) {
echo $this->eachNodes;
}
error_reporting(1);
}
这根本不起作用。我已经尝试更改查询参数以匹配文档结构,没有任何效果。 var_dump返回。
object(DOMNodeList)#44 (1) { ["length"]=> int(0) }
如何从内表中每个宽度为100%的div中提取锚属性。在这种情况下会返回href =“owlbook / manufacturer.aspx?manufacturerId = 124”和textValue = Owl Chant Book
请提供任何形式的帮助,因为我认为我在找到可行的解决方案方面没有取得任何进展。
谢谢, MAXX