如何转义字符串以便可以在XML属性中使用?
我不是不是从python代码中以编程方式设置属性-我只需要创建一个可用作XML属性的有效字符串即可。
我尝试过:
from xml.sax.saxutils import escape, quoteattr
print (escape('<&% "eggs and spam" &>'))
# >>> <&% "eggs and spam" &>
print (quoteattr('<&% "eggs and spam" &>'))
# >>> '<&% "eggs and spam" &>'
问题是escape()
和quoteattr()
都没有转义双引号字符,即"
。
当然,我可以对转义的字符串执行.replace('"', '"')
,但是我假设应该有一种方法可以使用现有的API(来自标准库或第三方模块,例如{ {1}}。
更新 :我发现Python3的html.escape
产生了预期的结果,但是我不愿在XML上下文中使用它,因为我假设HTML转义可能遵循与XML标准(https://www.w3.org/TR/xml/#AVNormalize)要求不同的规范。
答案 0 :(得分:1)
从sh()
被偷偷偷窃(经过一些修改):
tornado