将html呈现为文本,包括换行符

时间:2018-02-22 23:15:37

标签: javascript html css

我有一个页面,其中包含一些html。 我希望将呈现的页面作为文本,但不知何故还包括换行符。此外,如果相关,我正在寻找一个扩展的解决方案,它也将支持列表(使用空格和•),表格(使用空格,但没有边框)和类似的情况。

我正在寻找客户端或服务器端的Javascript解决方案。

请注意:并非页面中的每个元素都等于新行(例如:某些div可以是内联的,有些可以创建新行)。

对于exapmle,下面的这个片段将是html,输出将是文本本身,如下所示(运行后)。



#inline{
display:flex;
flex-direction:row;
}

#inline div{
margin-right:5px;
}

#notInline{
display:flex;
flex-direction:column;
}

<div>
<div id='inline'><div>some</div><div>divs</div><div>inline</div></div>
<div id='notInline'><div>some</div><div>divs</div><div>on top of each other</div>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

你可以试试这个。第一个内联文本第二个&#34;在彼此之上&#34;文本:

var inlineOutput = '';
document.querySelector('#inline').childNodes.forEach(e=>{inlineOutput += e.textContent + ' '}) + "\n";
console.log(inlineOutput);

var noInLineOutput = '';
document.querySelector('#notInline').childNodes.forEach(e=>{noInLineOutput += e.textContent + " \n"});

console.log(noInLineOutput);

答案 1 :(得分:0)

有一个名为Cheerio的js scraper可以为你提取所有文本,但我从未使用它。它允许您访问DOM,您可以收集所需页面的部分内容。这是一个tutorial,它与节点一起使用。

不确定这是否是您正在寻找的内容,如果他们是您自己的网页,您可以创建一个函数来调用dom中的所有内容并在文本中以开放式关闭克拉和分区为单位划分inbetween,如果看到notInLine类,可能会进行切换