python处理字符串为html_Python在字符串中处理html和xml的方法

问题

你想将html或者xml实体如 &entity; 或 code; 替换为对应的文本。 再者,你需要转换文本中特定的字符(比如, 或 &)。

解决方案

如果你想替换文本字符串中的 ‘' ,使用 html.escape() 函数可以很容易的完成。比如:

>>> s = 'elements are written as "text".'

>>> import html

>>> print(s)

elements are written as "text".

>>> print(html.escape(s))

elements are written as "<tag>text</tag>".

>>> # disable escaping of quotes

>>> print(html.escape(s, quote=false))

elements are written as "<tag>text</tag>".

>>>

如果你正在处理的是ascii文本,并且想将非ascii文本对应的编码实体嵌入进去, 可以给某些i/o函数传递参数 errors='xmlcharrefreplace' 来达到这个目。比如:

>>> s = 'spicy jalapeño'

>>> s.encode('ascii', errors='xmlcharrefreplace')

b'spicy jalapeño'

>>>

为了替换文本中的编码实体,你需要使用另外一种方法。 如果你正在处理html或者xml文本,试着先使用一个合适的html或者xml解析器。 通常情况下,这些工具会自动替换这些编码值,你无需担心。

有时候,如果你接收到了一些含有编码值的原始文本,需要手动去做替换, 通常你只需要使用html或者xml解析器的一些相关工具函数/方法即可。比如:

>>> s = 'spicy "jalapeño&quot.'

>>> from html.parser import htmlparser

>>> p = htmlparser()

>>> p.unescape(s)

'spicy "jalapeño".'

>>>

>>> t = 'the prompt is >>>'

>>> from xml.sax.saxutils import unescape

>>> unescape(t)

'the prompt is >>>'

>>>

讨论

在生成html或者xml文本的时候,如果正确的转换特殊标记字符是一个很容易被忽视的细节。 特别是当你使用 print()函数或者其他字符串格式化来产生输出的时候。 使用像 html.escape() 的工具函数可以很容易的解决这类问题。

如果你想以其他方式处理文本,还有一些其他的工具函数比如 xml.sax.saxutils.unescapge()可以帮助你。 然而,你应该先调研清楚怎样使用一个合适的解析器。 比如,如果你在处理html或xml文本, 使用某个解析模块比如 html.parse或 xml.etree.elementtree 已经帮你自动处理了相关的替换细节。

以上就是python在字符串中处理html和xml的方法的详细内容,更多关于python在字符串中处理html和xml的资料请关注萬仟网其它相关文章!

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值