在我的 web2py 应用程序中,我正在处理一个项目列表,用户可以在其中单击每个项目的链接来选择它。一个项目有一个 UUID、一个标题和一个描述。为了更好地定位,项目描述也显示为链接标题。为了防止注入和转义描述中的标签,我使用 XML sanitizer,如下所示:
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':' ', '<':'<', '>':'>'}), sanitize=True))
使用 Python 2 一切都很好。由于我已切换到 Python 3,因此我遇到了以下问题。当描述包含换行符时,消毒剂不再起作用。例如,我的 str_replace 例程生成的以下字符串可以在 Python 2 下由 XML 助手清理,但在 Python 3 下则不行:
Header Line1 Line2 Line3
清理转义的换行符
是 Python 3 的问题(但不是 Python 2)。XML 帮助器清理其他所有内容都没有问题(例如,小于或大于,我需要这些,因为如果没有描述,它会生成为<no description>
)。
在 Python3 下运行 web2py 的 XML 助手如何清理换行符?
感谢您的支持!
最好的问候克莱门斯