javascript - 保存Nodelist并通过js数组访问

标签 javascript php arrays node.js dom

我正在运行一个 php 脚本,它从 url 收集数据并在 Node 中显示指定的 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 列

日期
时间
姓名
2017年4月26日
13:45
一些文字
2017年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>

最佳答案

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

$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 );

关于javascript - 保存Nodelist并通过js数组访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44753920/

相关文章:

javascript - 如何在html5音视频播放器中回显php数组?

javascript - JavaScript中如何基于key从数组中过滤?

c++ - 将 char 数组复制到另一个数组会产生垃圾值

php - 尽管验证码有效,用户应该如何通过输入无效的电子邮件 ID 在网站上注册?

php - Laravel 5.1 - 自定义验证语言文件

php - 在屏幕上向用户使用php显示页面时,在后台执行shell脚本

javascript - 输入数组并将其显示为本地存储中的对象

javascript - 如何在 react 组件中打开引导模式?

javascript - javascript 所需的总数

javascript - x/y 越近,x/y 速度越快