Python独占XML规范化(XML-exc-c14n)



在Python中,我需要规范化(c14n)一个XML字符串。

我可以使用哪个模块/软件包?我该怎么做?

(我更喜欢使用默认的python 2.7模块,没有额外的安装或补丁。)

有关参考,请参阅:http://www.w3.org/TR/xml-exc-c14n/

来自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文档:

write_c14n(self,file,exclusive=False,with_comments=True,压缩=0,inclusive_ns_prefix=无)

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

尽管必须检查这两个库中的版本更改。

现在在python 3中,您可以这样编写代码:

import lxml.etree as ET
et = ET.parse('your_xml_file_that_you_want_to_canonicalize.xml')
et.write_c14n("your_result_will_be_in_this_file.xml")

最新更新