webp2y XML helper清理python3下的换行符

问题描述 投票:0回答:1

在我的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))

使用Python 2,一切都很好。由于我已切换到Python 3,因此遇到以下问题。当说明中包含换行符时,消毒器将无法工作。例如,我的s​​tr_replace例程产生的以下字符串可以在XML 2下用XML helper进行清理,而在Python 3下则不行:

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

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

如何在XML3下运行web2py的XML帮助程序清除换行符?

感谢您的支持!

最好的问候克莱门斯

python-3.x web2py html-sanitizing xmlhelper
1个回答
1
投票

这取决于python的HTMLParser类在3.4和3.5之间的更改,其中convert_charrefs开始默认默认为True:Python 3.4 DeprecationWarning convert_charrefs

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

© www.soinside.com 2019 - 2024. All rights reserved.