2017-05-26 6 views
-1

以下はtxtファイルからxmlにtxtファイルのタグのないリソースタグの下のxmlファイルに貼り付けたいこれを行う方法はありますか私はたくさん試しましたが、失敗しました。基本的にxmlファイルに追加したいのですが。特定の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>' 
関連する問題