如何在保留内部HTML格式的同时使用DOMDocument访问HTML节点?

时间:2016-04-27 00:49:19

标签: php domdocument

我正在尝试使用PHP中的DOMDocument从Google文档访问电子表格单元格的内容。

我能够访问节点,但内容是纯文本格式,并且缺少HTML格式。

以下是我正在使用的示例链接,其中包含粗体,斜体和带下划线的文本。

False

以下是我正在使用的PHP代码:

https://docs.google.com/spreadsheets/d/1Klpic32Gb_TDblDZDJQOkDedFGuNHAokxUXqrCPDFWE/pubhtml

我的输出缺少内部HTML格式:

    $url = "https://docs.google.com/spreadsheets/d/1Klpic32Gb_TDblDZDJQOkDedFGuNHAokxUXqrCPDFWE/pubhtml";

    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
    $htmlData = curl_exec($curl);
    curl_close($curl);

    $dom        = new \DOMDocument();
    $html       = $dom->loadHTML($htmlData); 
    $dom->preserveWhiteSpace = false;

    $tables     = $dom->getElementsByTagName('table');
    $rows       = $tables->item(0)->getElementsByTagName('tr');
    $cols       = $rows->item(1)->getElementsByTagName('td');  

    $rowHeaders = array();
    foreach ($cols as $i => $node) {

        if($i >= 0 ) $rowHeaders[] = $node->textContent;
    }

    foreach ($rows as $i => $row){
        if($i == 0 ) continue;
        $cols = $row->getElementsByTagName('td');
        $row = array();
        foreach ($cols as $j => $node) {
            $row[$rowHeaders[$j]] = $node->textContent;
        }
        $table[] = $row;
    }

    die(print_r($table)); 

1 个答案:

答案 0 :(得分:1)

不要使用textContent,试一试:

assign(input$variable_name, dataset)