gpt4 book ai didi

python - 使用 ElementTree 输出 "unused"XML 命名空间

转载 作者:太空宇宙 更新时间:2023-11-04 01:32:24 25 4
gpt4 key购买 nike

我正在使用 Python 3.2 的 xml.etree.ElementTree,并尝试像这样生成 XML:

<XnaContent xmlns:data="Model.Data">
<Asset Type="data:MyData">
...

格式不受我控制(它是 XNA)。请注意,data XML 命名空间实际上从未用于限定元素或属性,而是用于限定 XNA 的属性值。我的代码如下所示:

root = Element('XnaContent')
ET.register_namespace('data', 'Model.Data')
asset = SubElement(root, 'Asset', {"Type": "data:MyData"})

但是,输出看起来像(我打印的很漂亮):

<XnaContent>
<Asset Type="data:MyData">
...
</Asset>
</XnaContent>

如何获取输出中包含的 data XML 命名空间?

最佳答案

>>>print ET.tostring(doc, pretty_print=True)
<XnaContent>
<Asset Type="data:MyData"/>
<Asset Type="data:MyData"/>
</XnaContent>
>>> tree=ET.ElementTree(doc)
>>> root=tree.getroot()
>>> nsmap=root.nsmap
>>> nsmap['data']="ModelData"
>>> new_root = ET.Element(root.tag, nsmap=nsmap)
>>> print ET.tostring(new_root, pretty_print=True)
<XnaContent xmlns:data="ModelData"/>
>>> new_root[:] = root[:]
>>> print ET.tostring(new_root, pretty_print=True)
<XnaContent xmlns:data="ModelData">
<Asset Type="data:MyData"/>
<Asset Type="data:MyData"/>
</XnaContent>

关于python - 使用 ElementTree 输出 "unused"XML 命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12987908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com