本案例只解析文本
若需解析图片可查看: https://www.jianshu.com/p/50cbb428ad1c
- 需引用 html2json.js , 将html转化json文本
- 利用递归取出文本
import HtmlToJson from './html2json.js';
let arr = []; //存储文本数据
//递归取出文本数据
function getcontent(data, arr) {
data.forEach((item, index) => {
if (item.node == "element" && item.nodes) {
//先判断 item.tag == "br"
if (item.tag == "br") {
arr.push({ node: "br", text: "\n" });
} else {
let newarr = item.nodes;
return getcontent(newarr,arr)
}
} else if (item.node == "text") {
arr.push(item);
}
})
}
//根据 data 返回文本
function getText( data = '') {
var transData = {};//存放转化后的数据
transData = HtmlToJson.html2json(data);
let text_transData = {}; //纯文本 解析文本内容
if (transData.nodes.length > 0) {
text_transData = transData.nodes[0].nodes;
let testdata = []; //文本数据
//判断body中有内容才继续
text_transData.forEach((item, index) => {
if (item.tag == "body" && item.nodes) {
testdata = item.nodes;
}
})
if (testdata.length > 0){
arr = []; //先清空arr 在累加
getcontent(testdata,arr);
// console.log(arr, " 转义数据:arr")
let str = "";
arr.forEach((item, index) => {
str += item.text;
})
return str;
}else{
return '';
}
}
}
module.exports = {
getText: getText,
}
调用 getText ()方法
const Gettext = require('../../Gettext.js');
let content ="
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>乐善好施</p>
</body>
</html>"
let newcontent = Gettext.getText(content);
console.log(" 乐善好施 ")