鱼C论坛

 找回密码
 立即注册
查看: 1851|回复: 2

关于清除html中vml标签问题

[复制链接]
发表于 2020-12-22 10:02:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Niong 于 2020-12-22 10:02 编辑

遇到一个问题,在处理html数据中,有许多vml的标签需要清除,只留下html的标准标签,想请大佬帮个忙。

需要处理的字符如下:



<TABLE bgColor=#ffffff border=bordercolor=#000000>
    <TBODY>
        <TR>
            <TD></TD>
        </TR>
    </TBODY>
</TABLE>
<v:stroke joinstyle="miter"></v:stroke>
<v:formulas>
    <v:f eqn="if lineDrawn pixelLineWidth 0"></v:f>
    <v:f eqn="sum @0 1 0"></v:f>
    <v:f eqn="sum 0 0 @1"></v:f>
    <v:f eqn="prod @2 1 2"></v:f>
    <v:f eqn="prod @3 21600 pixelWidth"></v:f>
    <v:f eqn="prod @3 21600 pixelHeight"></v:f>
    <v:f eqn="sum @0 0 1"></v:f>
    <v:f eqn="prod @6 1 2"></v:f>
    <v:f eqn="prod @7 21600 pixelWidth"></v:f>
    <v:f eqn="sum @8 21600 0"></v:f>
    <v:f eqn="prod @7 21600 pixelHeight"></v:f>
    <v:f eqn="sum @10 21600 0"></v:f>
</v:formulas>
<v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path>
<o:lock aspectratio="t" v:ext="edit"></o:lock>
</v:shapetype>
<o:p></o:p></SPAN></DIV>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 16pt; FONT-FAMILY: 仿宋_GB2312">
        <o:p></o:p>
    </SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 32pt; mso-char-indent-count: 2.0" align=right><SPAN lang=EN-US style="FONT-SIZE: 16pt; FONT-FAMILY: 仿宋_GB2312"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN></SPAN><SPAN style="FONT-SIZE: 16pt; FONT-FAMILY: 仿宋_GB2312">文:王向辉 图:岳云峰<SPAN lang=EN-US>
            <o:p></o:p>
        </SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 328pt; mso-char-indent-count: 20.5" align=right><SPAN lang=EN-US style="FONT-SIZE: 16pt; FONT-FAMILY: 仿宋_GB2312">2008</SPAN><SPAN style="FONT-SIZE: 16pt; FONT-FAMILY: 仿宋_GB2312">、<SPAN lang=EN-US>9</SPAN>、<SPAN lang=EN-US>18</SPAN></SPAN><SPAN lang=EN-US style="FONT-SIZE: 14pt">
        <o:p></o:p>
    </SPAN></P>
<P>&nbsp;</P>



清理掉像<v:stroke>,<v:formulas>,<v:f>这样的标签

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-22 10:21:48 From FishC Mobile | 显示全部楼层
正则吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-22 16:55:14 | 显示全部楼层
用正则就可以了啊
不用正则也可以,
1、搜索 ---<v:
2、搜索到以后就定位了起始标志,再定位到这里搜索下一个空格或者>
3、搜到以后,这一段字符串的<后面插入/,就作为结束标志
4、起始标志和结束标志之间的字符串删除就行了
5、递归

还有一种办法,用模块BeautifulSoup的findall函数
把标签筛选出来以后直接删除就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-17 00:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表