保存Nodelist并通过js数组访问

时间:2017-06-26 06:10:28

标签: javascript php arrays node.js dom

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

所以我想将我从网址获取的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
sometext
17年4月26日
13:45
sometext

我希望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>

1 个答案:

答案 0 :(得分:0)

好的,要获得该表结构的每个第三列,您可以做一些事情:

array =  ["R.M", 20, "R.U-CS", 3, "R.M-TIC", 3, "R.J.CONF", 20]
array.reject &String.method(:===)
#⇒ [
#   [0] 20,
#   [1] 3,
#   [2] 3,
#   [3] 20
# ]

或(与xpath):

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