webp2y XML helper 清理 python3 下的换行符



在我的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, {'rn':'&#13;', '<':'&#60;', '>':'&#62;'}), sanitize=True))

使用Python 2,一切都很好。自从我切换到Python 3以来,我遇到了以下问题。当描述包含换行符时,消毒器不再工作。例如,我的str_replace例程生成的以下字符串可以由 Python 2 下的 XML 帮助程序清理,但在 Python 3 下则不能

Header&#13;&#13;Line1&#13;Line2&#13;Line3

清理&#13;转义的换行符是 Python 3 的问题(但不是 Python 2(。对于XML助手来说,其他一切都没有问题(例如,小于或大于,我需要这些,因为如果没有描述,它将生成为<no description>(。

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

感谢您的任何支持!

此致敬意 克莱门斯

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

我认为您的 web2py yatl 源代码中的以下修复应该可以纠正它: https://github.com/web2py/yatl/compare/master...timnyborg:patch-1

最新更新