我正在尝试从多个嵌套表结构中提取特定的链接属性。文档格式陈旧,这可以解释为什么在设计页面时大量使用表格元素。
这是我尝试使用 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>
这是我用来解析它的代码。我正在尝试获取嵌套在 div 中的锚的 href 和 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
请提供任何帮助,因为我认为我在寻找可行解决方案方面没有任何进展。
谢谢,麦克斯