在Python中转换为&
问题描述:
我正在Python中使用一个简单的搜寻器。目标是创建一个sitemap.xml。 (你可以在这里找到非常alpha版本:http://code.google.com/p/sitemappy/) 我注意到,如果我生成的XML包含非HTML实体的URL(如&),xml不验证,它不被Google网站管理员工具接受。 是否有快速的方法来编码网址的查询字符串部分?在Python中转换为&
谢谢!
利玛窦
答
cgi.escape
救援:
cgi.escape(s[, quote])
转换的字符字符串s '&', '<' 和 '>' 到HTML安全序列。如果您需要显示可能包含HTML中的此类字符的文本,请使用此选项。如果可选标志引用为真,则引号标记字符('“')也会被翻译;这有助于包含在HTML属性值中,如英寸。如果要引用的值可能包含单引号或双引号字符,或两者兼而有之,考虑xml.sax.saxutils模块中使用quoteattr()函数,而不是
快速交互检查:
>>> import cgi
>>> cgi.escape('<&>')
'<&>'
>>>
您不能一行一行地通过这个函数运行一个XML文件。它已被弃用,并由html.escape(s,quote = True)取代,但仍无法选择性地跳过&符号。问题是该函数也会转义XML标记尖括号,这会触发ParseErrors。你最好逐行解析并创建一个新文件或者编辑文件line.replace(“&”,“&”) – aJetHorn 2018-01-22 18:49:08