.html文件转换成.txt
2024-08-29 02:17:30
@ 思路
@-@ 简要
根据尖括号将文件分隔成字符串,建立一套判断字符串是否为标签的标准,若不为标签则为文本内容,存入结果文件中;
@-@ 详述
0. 建立两个哈希表:
哈希表1 unordered_set<string> - 存放“普通标签名字符串”:html, head, body, table, td, br等;
哈希表2 unordered_map<string, bool> - 存放“影响到文本读写的标签”:script, style等(<script></script>中的内容不读取);
1. 提取标签
读取文件流,从文件首部开始,若遇到“<”,就判断其后的内容是否为标签(因为“<”可能为小于号):提取“<”后的第一个字符串作为标签名,以空格符号或">"截止;
2. 判定标签
在哈希表1中查找提取到的标签,找到则判定为普通标签名,将指针移到">"之后;
对提取到的标签名,判断其是否在哈希表2中,若在则设置文本的可读状态(如<script>后的文本不读取,</script>后的文本开始读取);
若根据哈希表1判定不为普通标签,且在文本读取标志皆为true时,将不是标签的字符串都存入字符串缓冲区,写入文本文件;
@ code
最新文章
- xcode 常见错误报错问题!
- salt安装与简单使用---基于centos6.5
- java 获取当前时间及年月日时分秒
- 2013 US Open Award Ceremoney
- C#接口的经典案例
- Spring中的一个错误:使用Resources时报错(The annotation @Resources is disallowed for this location)
- Android Studio 打开弹出警告框
- 使用scp命令,不同服务器之间拷备文件
- JAVAscript学习笔记 js条件语句 第三节 (原创) 参考js使用表 (2017-09-14 15:55)
- Ring3句柄表的枚举
- hashtable的运用实例
- 谁说深入浅出虚拟机难?现在我让他通俗易懂(JVM)
- ERC20数字货币ProxyOverflow存在漏洞
- 关于递推算法求解约瑟夫环问题P(n,m,k,s)
- ffplay源码分析6-音频重采样
- VB.NET工作记录
- Delphi2010怎样获取程序内部自身版本?
- Andriod下载源码导入后AndroidManifest.xml小红叉的解决办法
- .net根据经纬度获取地址(百度api)
- iOS 中架构模式的浅显理解
热门文章
- python图片拼接
- 中阶d03.1 JDBCDemo
- 37.1 net-- udp传输
- Python Requests-学习笔记(4)-定制请求头和POST
- MODIS系列之NDVI(MOD13Q1)四:MRT单次及批次处理数据
- leetcode c++做题思路和题解(4)——队列的例题和总结
- tf.nn.max_pool 池化
- Linux下搭建接口自动化测试平台
- SVG 案例:动态去创建分支节点,当鼠标经过某个节点时,分支线会高亮
- windows批处理protoc生成C++代码