当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python xml.etree.ElementTree.canonicalize用法及代码示例


用法:

xml.etree.ElementTree.canonicalize(xml_data=None, *, out=None, from_file=None, **options)

C14N 2.0 变换函数。

规范化是一种以允许byte-by-byte 比较和数字签名的方式规范化 XML 输出的方法。它降低了 XML 序列化程序的自由度,而是生成了更受约束的 XML 表示。主要限制涉及命名空间声明的放置、属性的顺序和可忽略的空格。

此函数将 XML 数据字符串 (xml_data) 或文件路径或 file-like 对象 (from_file) 作为输入,将其转换为规范形式,并使用 out 文件(-like)将其写出对象(如果提供),否则将其作为文本字符串返回。输出文件接收文本,而不是字节。因此,它应该使用utf-8 编码以文本模式打开。

典型用途:

xml_data = "<root>...</root>"
print(canonicalize(xml_data))

with open("c14n_output.xml", mode='w', encoding='utf-8') as out_file:
    canonicalize(xml_data, out=out_file)

with open("c14n_output.xml", mode='w', encoding='utf-8') as out_file:
    canonicalize(from_file="inputfile.xml", out=out_file)

配置options如下:

  • with_comments :设置为 true 以包含评论(默认值:false)
  • strip_text :设置为 true 以去除文本内容前后的空格

    (默认:假)

  • rewrite_prefixes :设置为 true 以将命名空间前缀替换为 “n{number}”

    (默认:假)

  • qname_aware_tags :一组 qname 感知标记名称,其中前缀

    应在文本内容中替换(默认:空)

  • qname_aware_attrs:一组 qname 感知属性名称,其中前缀

    应在文本内容中替换(默认:空)

  • exclude_attrs :一组不应序列化的属性名称
  • exclude_tags :一组不应序列化的标签名称

在上面的选项列表中,“a set” 指的是任何字符串集合或可迭代字符串,不需要排序。

3.8 版中的新函数。

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 xml.etree.ElementTree.canonicalize。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。