如何使用xml.etree.ElementTree Python格式化属性、前缀和标记

如何使用xml.etree.ElementTree Python格式化属性、前缀和标记,python,xml,elementtree,xml-namespaces,Python,Xml,Elementtree,Xml Namespaces,我正在尝试创建一个python脚本,该脚本将创建一个模式,然后根据现有引用填充数据 这就是我需要创建的内容: <srp:root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 这给了我: 如何修复它以使前端匹配?您要求的确切结果不完整,但只需对gen()函数进行一些编辑,就可以生成格式良好的输出 根元素应该绑定到http://www.-redacted-standards.org/Schemas/MSRP

我正在尝试创建一个python脚本,该脚本将创建一个模式,然后根据现有引用填充数据

这就是我需要创建的内容:

<srp:root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
这给了我:


如何修复它以使前端匹配?

您要求的确切结果不完整,但只需对
gen()
函数进行一些编辑,就可以生成格式良好的输出

根元素应该绑定到
http://www.-redacted-standards.org/Schemas/MSRP.xsd
名称空间(
srp
前缀)。为了生成
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance“
声明,必须在XML文档中使用命名空间

def gen():
    root = Element(QName(ns["srp"], 'root'))
    root.set(QName(ns["xsi"], "schemaLocation"), "whatever") # Add xsi:schemaLocation attribute
    
    register_namespace("srp", ns["srp"])                     # Needed to get 'srp' instead of 'ns0'
    
    print(prettify(root))
结果(为了可读性增加了换行符):


您要求的确切结果不完整,但是对
gen()
函数进行一些编辑,就可以生成格式良好的输出

根元素应该绑定到
http://www.-redacted-standards.org/Schemas/MSRP.xsd
名称空间(
srp
前缀)。为了生成
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance“
声明,必须在XML文档中使用命名空间

def gen():
    root = Element(QName(ns["srp"], 'root'))
    root.set(QName(ns["xsi"], "schemaLocation"), "whatever") # Add xsi:schemaLocation attribute
    
    register_namespace("srp", ns["srp"])                     # Needed to get 'srp' instead of 'ns0'
    
    print(prettify(root))
结果(为了可读性增加了换行符):


<?xml version="1.0" ?>
<srp:root xmlns:srp="http://www.-redacted-standards.org/Schemas/MSRP.xsd"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="whatever"/>