dtvjl64442 2018-09-22 19:56
浏览 70
已采纳

难以解析网站上的表格内容

I've written a script in PHP to get the tabular data from a webpage. When I execute my script I can get them in a single column. However, I wish to parse them as a list, as in how they look like in that webpage.

Website link

To be clearer:

My current output are like:

978
EMU
EUR
1
118.2078
36
Australija
AUD
1
73.1439

My expected output are like:

['978', 'EMU', 'EUR', '1', '118.2078']
['36', 'Australija', 'AUD', '1', '73.1439']
['124', 'Kanada', 'CAD', '1', '77.7325']
['156', 'Kina', 'CNY', '1', '14.6565']
['191', 'Hrvatska', 'HRK', '1', '15.9097']

This is my try so far:

<?php
$url = "http://www.nbs.rs/kursnaListaModul/srednjiKurs.faces?lang=lat";
$dom = new DomDocument;
$dom->loadHtmlFile($url);
$xpath = new DomXPath($dom);

$rowData = array();
foreach ($xpath->query('//tbody[@id="index:srednjiKursList:tbody_element"]//tr') as $node) {
    foreach ($xpath->query('td', $node) as $cell) {
        $rowData[] = $cell->nodeValue;
    }
}
foreach($rowData as $rows){
    echo $rows . "<br/>";
}
?>
  • 写回答

2条回答 默认 最新

  • dpb42021 2018-09-22 20:16
    关注

    You are adding each element one at a time to the output array, you probably wanted to build up a row at a time and output that...

    $rowData = array();
    foreach ($xpath->query('//tbody[@id="index:srednjiKursList:tbody_element"]//tr') as $node) {
        $row = array();
        foreach ($xpath->query('td', $node) as $cell) {
            $row[] = $cell->nodeValue;
        }
        $rowData[] = $row;
    }
    foreach($rowData as $rows){
        print_r($rows);    // Format the data as needed
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?