使用lxml将整个xml节点添加到元素

时间:2016-06-10 10:33:51

标签: python-2.7 lxml

我正在尝试将新节点添加到元素树中。这些新节点中包含子节点。无论如何使用lxml一次性添加所有这些。

例: 旧格式

<Test>
    <Header>
    </Header>
</Test>

我想通过添加节点来实现的新格式

<Test>
    <Header>
        <Source>
           <ProcessID> 234 </ProcessID>
           <InstanceID> 1 </InstanceID>
        </Source>  
        <Target>
           <ProcessID> 234 </ProcessID>
           <InstanceID> 1 </InstanceID>
        </Target>
     </Header>
</Test>

我正在寻找两件事:

1)无论如何,我可以一次性添加整个Source节点和Target节点吗?我的意思是一次性添加源节点和一次性添加Target节点。而不是添加源节点,然后是processID,然后是InstanceID等

2)目前我正在维护平面文件中的更改并存储更改,然后使用lxml

应用它们

我面临的问题是, 当我使用Subelement将Source节点添加到Header节点时,它不会被添加为正确的标记,只会添加Source的闭包标记。当我尝试使用 find 函数获取Source元素时,我将元素视为null。因此我无法将子节点添加到Source节点。如您所见,Source节点没有任何属性或文本,但它有子节点。 你能帮我把这个结构添加到元素树吗?我尽可能地尝试了所有方法。我确信应该有一个简单的解决方案,而不是逐个添加它。 我有这么多文件需要这样对待,所以寻找一个简单的解决方案。

TIA

0 个答案:

没有答案