在Python中,我需要Canonicalize(c14n)一个XML字符串。
我可以使用哪个模块/包?我应该怎么做?
(我更喜欢使用默认的python 2.7模块,没有额外的安装或补丁。)
答案 0 :(得分:4)
来自http://www.decalage.info/en/python/lxml-c14n
lxml提供了一种在python中执行c14n的简单方法。 < ..>
以下示例说明如何使用lxml 2.1执行C14N:
import lxml.etree as ET
et = ET.parse('file.xml')
output = StringIO.StringIO()
et.write_c14n(output)
print output.getvalue()
来自lxml docs:
write_c14n(self,file, exclusive = False ,with_comments = True, compression = 0,inclusive_ns_prefixes = None)
C14N写文件。总是写UTF-8。
< ..>
还有libxml2:
XML C14N 1.0版提供了两个选项,可以生成四个选项 可能性(见http://www.w3.org/TR/xml-c14n和 http://www.w3.org/TR/xml-exc-c14n/):
- 包容性或独家C14N
- 有无评论
libxml2可以在其C14N API中访问这些选项: http://xmlsoft.org/html/libxml-c14n.html
虽然必须检查这两个库中的版本更改。