gpt4 book ai didi

python - saxutils.escape() 两次转义分号

转载 作者:行者123 更新时间:2023-11-28 22:04:30 25 4
gpt4 key购买 nike

我正在尝试通过 saxutils.escape 方法转义分号。

saxutils.escape('<;', {';': '&#59;'})

我希望它产生

'&lt;&#59;'

但是它给了

'&lt&#59;&#59;'

这是设计使然吗?我怎样才能得到预期的结果?

最佳答案

你的问题是saxutils.escape分两步工作。首先,它解析 < , > , 和 & , 然后它使用 entities解析该解析的结果

所以一次<已被 &lt; 取代, 你有 &lt;; , 所以你最终得到 &lt&#59;&#59; .

基本上,它的所作所为是有道理的。如果你需要转义分号,那不是因为 HTML 的原因,所以必须要对它们进行双重转义。在这种情况下,转义由 HTML 要求的转义创建的分号是有意义的。

使用 saxutils.escape 无法获得您想要的结果.您需要使用另一种转义方法。查看Python Wiki page on escaping HTML一些想法。

您也可以使用类似我对 What is the best way to do a find and replace of multiple queries on multiple files? 的回答中的内容用其他模式同时替换分号,这样您就不会重复替换任何内容。

关于python - saxutils.escape() 两次转义分号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7063026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com