The problem I have is this. I've started the XML creation using the dictionary structure used by xmltodict
Python package so I can use the unparse
method to create the XML. But I think I reached a point where xmltodict
can't help me. I have actions in this dictionary format, highly nested each, something like this, just much more complex:
action = {
"@id": 1,
"some-nested-stuff":
{"@attr1": "string value", "child": True}
}
Now I need to group some actions similar to this:
<action id=1>...</action>
<action-group groupId=1>
<action id=2>...</action>
<action id=3>...</action>
</action-group>
<action id=4>...</action>
And yes, the first action needs to go before the action group and the fourth action after it. It seems impossible to do it with just xmltodict
. I was thinking that I create the actions' XML tree as an lxml
object from these dictionaries, and than I merge those objects into a whole XML. I think that it wouldn't be a big task, but there might be a ready package for that. Is there one?
The alternative solution — that I try to avoid if possible — is to rewrite the project from scratch using just lxml
. Or is there a way to create that XML using just xmltodict
but not the xml/lxml
packages?