保存Nodelist并通过js数组访问

问题描述 投票:0回答:1

我正在运行一个 PHP 脚本,该脚本从 URL 收集数据并在节点中显示指定的 html 标签。现在我想将此列表保存在我的服务器上并创建一个 js 函数来访问该文件并收集某些数据,例如从第 6 行开始,每隔三个值应放入将要显示的数组中。

所以我想将从 URL 获取的 PHP 数据与我的 js 脚本连接起来,该脚本当前仅显示数组中的静态值,但它应该从我的 PHP 列表中获取这些值。

这是我的 PHP 代码:

$html = file_get_contents("https://www.example.com/link");

$dom = new DOMDocument();
$dom->loadHTML($html);

$nodes = $dom->getElementsByTagName('td');
foreach ($nodes as $node) {
    echo $node->nodeValue."<br>"; // return <td> tag data
}

输出如下所示,因为表格只有 3 列

日期
时间
姓名
17.4.26
13:45
一些文字
17.4.26
13:45
一些文字

我希望 js 只获取数组中今天日期的粗体值。 我的想法是将其保存为 xml 文件并创建 js 访问,但这并没有按照我想要的方式工作。有人知道怎么做这个吗? 这是 HTML 表的结构

<table class="xxx"><col style="width: 20%;"/>
    <col style="width: 20%;"/><col style="width: 60%;"/>
    <thead>
        <tr><td>Date</td><td>Time</td><td>Name</td></tr>
    </thead> 
    <tbody>
        <tr><td>2017-06-26</td><td>03:06:13</td><td>thetextiwant</td></tr>
        <tr><td>2017-06-26</td><td>03:06:13</td><td>thetextiwant</td></tr> 

此表将继续另外 1000 个值 然后

    </tbody>
</table>
javascript php arrays node.js dom
1个回答
0
投票

好的,要获取该表结构的每第三列,您可以执行以下操作:

$dom = new DOMDocument();
$dom->loadHTML($html);

$tbodyRows = $dom->getElementsByTagName( 'tbody' )
                 ->item( 0 ) // grab first tbody
                 ->getElementsByTagName( 'tr' );

$result = array();
foreach( $tbodyRows as $tbodyRow )
{
    $result[] = $tbodyRow->getElementsByTagName( 'td' )
                         ->item( 2 ) // grab 3rd column
                         ->nodeValue;
}

var_dump( $result );

或(使用 xpath):

$dom = new DOMDocument();
$dom->loadHTML($html);

$xpath = new DOMXPath( $dom );
$thirdColumns = $xpath->query( '//table/tbody/tr/td[3]' );

$result = array();
foreach( $thirdColumns as $thirdColumn )
{
    $result[] = $thirdColumn->nodeValue;
}

var_dump( $result );
© www.soinside.com 2019 - 2024. All rights reserved.