dsklzerpx64815631 2015-10-13 16:44 采纳率: 100%
浏览 209
已采纳

如何用php DOMDocument输出纯文本?

I'm using this code (thank you Lawrence) to parse HTML table:

<?php
$html = file_get_contents('http://www.example.com');
$dom = new DOMDocument();
@$dom->loadHTML($html);

//TUE 1 1 4.37 6.39 1.08 5.35 9.18 6.00 1.30 6.30 7.42 9.40                 
echo '
<table>
    <tr>';
foreach($dom->getElementsByTagName('table') as $table) {
    echo innerHTML($table->getElementsByTagName('tr')->item(9));
}
echo '
    </tr>
</table>';

function innerHTML($current){
    $ret = "";
    $nodes = @$current->childNodes;
    if(!empty($nodes)){
        foreach($nodes as $v){
            $tmp = new DOMDocument();
            $tmp->appendChild($tmp->importNode($v, true));
            $ret .= $tmp->saveHTML();
        }
        return $ret;
    }
    return;
}
?>

The problem is that it outputs original HTML code, so how can I output plain text?

I have tried these changes, but it didn't work:

return $ret->textContent;
return $ret->nodeValue;
return $ret->plaintext;

echo innerHTML($table->getElementsByTagName('tr')->item(9)->textContent);
echo innerHTML($table->getElementsByTagName('tr')->item(9)->nodeValue);
echo innerHTML($table->getElementsByTagName('tr')->item(9)->plaintext);
  • 写回答

2条回答 默认 最新

  • duanqiang5722 2015-10-13 17:12
    关注

    The solution is actually very simple - strip_tags function.

    echo strip_tags(innerHTML($table->getElementsByTagName('tr')->item(9)));
    

    It takes the value and removes all of the HTML code, which results in plain text value.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?
  • ¥15 关于#vue.js#的问题:修改用户信息功能图片无法回显,数据库中只存了一张图片(相关搜索:字符串)
  • ¥15 texstudio的问题,