时间:2021-05-22
问题
你想将HTML或者XML实体如 &entity; 或 &#code; 替换为对应的文本。 再者,你需要转换文本中特定的字符(比如<, >, 或 &)。
解决方案
如果你想替换文本字符串中的 ‘<' 或者 ‘>' ,使用 html.escape() 函数可以很容易的完成。比如:
>>> s = 'Elements are written as "<tag>text</tag>".'>>> import html>>> print(s)Elements are written as "<tag>text</tag>".>>> 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".'>>> 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的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
用BeautifulSoup解析html和xml字符串实例:#!/usr/bin/python#-*-coding:UTF-8-*-frombs4importB
详解PHP函数strip_tags处理字符串缺陷bugPHP函数strip_tags()是一个常用函数,该函数可以剥去字符串中的HTML、XML以及PHP的标签
本文实例讲述了python实现在字符串中查找子字符串的方法。分享给大家供大家参考。具体如下:这里实现python在字符串中查找子字符串,如果找到则返回子字符串的
使用字符串时,常见的操作之一是使用给定的分隔符将字符串拆分为子字符串数组。在本文中,我们将讨论如何在Python中拆分字符串。.split()方法在Python
1、HTML模板和字符串模板HTML模板:直接在HTML页面挂载的模板。(即非字符串模板)非字符串模板:在单文件里用指定的模板,换句话说,写在html中的就是非