Python 3.x webp2y XML助手清理python3下的换行符

Python 3.x webp2y XML助手清理python3下的换行符,python-3.x,web2py,html-sanitizing,xmlhelper,Python 3.x,Web2py,Html Sanitizing,Xmlhelper,在我的web2py应用程序中,我正在处理一个项目列表,用户可以在其中单击每个项目的链接来选择此项目。项目具有UUID、标题和描述。为了更好地定位,项目描述也显示为链接标题。为了防止描述中的标记注入和转义标记,我使用XML消毒剂,如下所示: A(this_item.title, \ callback = URL('item', 'select', \ vars=dict(uuid=this_item.uuid), user_signature=True), \

在我的web2py应用程序中,我正在处理一个项目列表,用户可以在其中单击每个项目的链接来选择此项目。项目具有UUID、标题和描述。为了更好地定位,项目描述也显示为链接标题。为了防止描述中的标记注入和转义标记,我使用XML消毒剂,如下所示:

A(this_item.title, \
  callback = URL('item', 'select', \
                 vars=dict(uuid=this_item.uuid), user_signature=True), \
  _title=XML(str_replace(this_item.description, {'\r\n':'&#13;', '<':'&#60;', '>':'&#62;'}), sanitize=True))
消毒管线断裂,由&13;是Python3的问题,而不是Python2的问题。对于XML帮助程序来说,其他所有内容都没有问题,例如小于或大于,我需要这些,因为如果没有描述,它将生成为

在Python3下运行web2py的XML助手如何清理换行符

谢谢你的支持

致意
Clemens

这是由于python的HTMLPasser类在3.4和3.5之间发生了变化,其中convert_charrefs开始默认为True:

我认为您的web2py yatl源代码中的以下修复程序应该可以纠正它:

蒂姆,非常感谢!这就是解决办法!今天,我已经建立了一个简单的解决方法:首先是XML+sanitizer,然后替换XML帮助器属性文本中的换行符:item_title=XMLstr_replacethis_activity.description,{:'&62;},sanitize=True item_title.text=str_replaceTime_title.text,{'\r\n':'&13;}Athis_item.title,\callback URL'item',select',\vars=dictuuid=this\u item.uuid,user\u signature=True,\\u title=item\u title,但修复效果更好!
Header&#13;&#13;Line1&#13;Line2&#13;Line3