2017-05-26 14 views
-1

下面是我的txt文件我想将它粘贴到资源标签内没有标签从txt文件下面的xml文件有什么办法做到这一点我尝试了很多,但失败了,我基本上想把它附加到xml文件。追加一些数据到特定的XML标签从txt文件到xml在PYHTON

TXT文件

<resources> 
      <format fieldOrder="upper first" frameDuration="200/5000s" height="1080" id="3305" name="FFVideoFormat1080i50" width="1920"></format> 
     </resource> 

XML文件

<resource> 
     <asset id="r28" name="Poldark_S03E02_2tk_UK_Music_20170428.L" uid="1F74A"> 
     </asset> 
    </resources> 
+0

的 “XML文件” 没有很好地形成。如果格式不正确,则不能声称它是XML文件。 – mzjn

回答

0

你说你要 '追加',但我觉得你要把format元素resource elem ENT。如果这是正确的,那么重要的是要知道根元素的方法insert

这里我将字符串转换为xml树。然后我找出这些树的根。完成之后,我选择txt_file树的第一个子项,并将其插入xml_file树根的子项列表的0位置。

from lxml import etree 
txt_file = '''\ 
<resources> 
    <format fieldOrder="upper first" frameDuration="200/5000s" height="1080" id="3305" name="FFVideoFormat1080i50" width="1920"></format> 
</resources>''' 
xml_file = '''\ 
<resource> 
    <asset id="r28" name="Poldark_S03E02_2tk_UK_Music_20170428.L" uid="1F74A"></asset> 
</resource>''' 
txt_tree = etree.fromstring(txt_file) 
xml_tree = etree.fromstring(xml_file) 
txt_root = txt_tree.getroottree().getroot() 
xml_root = xml_tree.getroottree().getroot() 
xml_root.insert(0, txt_root.getchildren()[0]) 
print (etree.tostring(xml_tree)) 

结果:

b'<resource>\n\t<format fieldOrder="upper first" frameDuration="200/5000s" height="1080" id="3305" name="FFVideoFormat1080i50" width="1920"/>\n<asset id="r28" name="Poldark_S03E02_2tk_UK_Music_20170428.L" uid="1F74A"/>\n</resource>'