[英]Include namespace in xmltodict.unparse output
我使用xmltodict
將 Python 字典轉換為 XML。 我想包括命名空間。 我想出的是:
xml_dict = {
"http://namespace.org:workflow":
{"action-list": "..."}
}
namespaces = {"http://namespace.org": "ws"}
xml = xmltodict.unparse(xml_dict, namespaces=namespaces,
pretty=True, short_empty_elements=True, full_document=False)
這給了我結果:
<ws:workflow>
<action-list>...</action-list>
</ws:workflow>
如何在結果中包含命名空間? 我想要這樣的東西:
<ws:workflow xmlns:ws="http://namespace.org">
是否有使用xmltodict
的簡單解決方案?
注意:我檢查了unparse
和_emit
函數的源代碼中的所有關鍵字 arguments。 我想preprocessor
參數將是更好解決方案的關鍵。 但它沒有記錄。
不好,也不是添加所有命名空間的通用解決方案,但可以。
import xmltodict
xml_dict = {
"http://namespace.org:workflow":
{
"@REPLACE_THIS": "http://namespace.org",
"action-list": "..."
}
}
namespaces = {"http://namespace.org": "ws"}
xml = xmltodict.unparse(xml_dict, namespaces=namespaces, pretty=True, short_empty_elements=True, full_document=False)
xml = xml.replace("REPLACE_THIS", "xmlns:ws", 1)
print(xml)
這正是我想要的:
<ws:workflow xmlns:ws="http://namespace.org">
<action-list>...</action-list>
</ws:workflow>
替換 function 中的第三個參數確保不會替換其他出現的"REPLACE_THIS"
,只會替換第一個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.