如何从纯文本中提取html标记
How to extract html markup from plain texts
我从CKEditor那里得到了一堆纯文本的html数据。它包含表结构和一堆html标记。
我想知道是否有一种方法只提取表结构和td数据。
纯文本可能类似
first table....bunch more texts here...
<table>
<tr><td> data1 </td></tr>
<tr><td> data2 </td></tr>
<tr><td> data3 </td></tr>
</table>
end of table. test data here...
<table>
<tr><td> data4 </td></tr>
<tr><td> data5 </td></tr>
<tr><td> data6 </td></tr>
</table>
end of second table and bunch more texts....
我试过
//tableData contains everything the user type in CKEditor.
var table = tableData.getElementsByTagName ('table');
但我刚刚意识到这些文本在dom
中是不存在的。它们只是我从CKEditor
中提取的纯文本。
如何提取这些table
数据?
谢谢你的帮助!
我假设您有一个tableData
字符串,您希望从中提取DOM节点以便能够处理它们。
为了避免解析,可以将此字符串插入到临时DOM元素中。
var temp = document.createElement( 'div' );
div.innerHTML = tableData;
// Retrieve all tables.
var tables = div.getElementsByTagName( 'table' );
您需要以下内容,将所有表拉入一个数组中,然后对它们进行迭代。这是一把小提琴,也显示了这一点http://jsfiddle.net/M5nMY/.这里我假设tabledata是包含表的DOM元素的id。
var tableData = document.getElementById('tabledata');
var tables = tableData.getElementsByTagName('table');
var data = new Array();
for(var k = 0; k < tables.length; k++){
var table = tables[k];
for(var i=0; i< table.rows.length; i++){
var row = table.rows[i].cells;
for(var j=0; j < row.length; j++){
data.push(row[j].innerHTML);
}
}
}
请注意,在这种情况下,我已经将所有表中的所有数据一次一行地推送到单个数组中。
相关文章:
- 用于提取 HTML 标记子元素的正则表达式
- 如何使用mozilla插件sdk API从响应中提取html页面
- 从字符串中提取HTML标记并“使用”它
- 使用 jQuery 提取 HTML 标记之外的文本
- 从动态页面中提取 html 源代码
- 提取 html 页面的页眉和页脚
- 提取 html 元素之间的文本
- 用于提取 HTML 标记的 XPaPath
- 如何使用 jQuery 从使用 Ajax 获取的内容中提取 HTML
- 使用javascript提取HTML
- 提取html页面中所有以.js扩展名结尾的链接
- 从Javascript关联数组中提取HTML链接以应用于D3生成的表
- 使用PhantomJS提取html和文本
- 使用javascript/jquery从字符串中提取html元素
- 如何提取html并将其添加到数组中
- 如何从纯文本中提取html标记
- UIWebView-如何从Facebook等网页中提取HTML代码
- 如何使用javascript或jquery从字符串中提取html标记的内容
- 正确提取HTML
- regex来提取html注释属性