0

我正在尝试从多个嵌套表结构中提取特定的链接属性。文档格式陈旧,这可以解释为什么在设计页面时大量使用表格元素。

这是我尝试使用 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

请提供任何帮助,因为我认为我在寻找可行解决方案方面没有任何进展。

谢谢,麦克斯

4

0 回答 0