2017-04-19 16 views
-1

私はPythonでxmlを扱うことを学んでいますが、私は立ち往生しています。xmlから要素を削除してファイルに書き込む - Python - lxml

from lxml import etree as le 

file = open("default.xml", 'r') 
     tree = le.parse(file) 
     file.close() 
     for cams in tree.xpath("//camera[@id=\'1\']"): 
      cams.getparent().remove(cams) 
     file = open("default.xml", 'w') 
     #tree = le.tostring(tree, pretty_print=True, xml_declaration=True) 
     file.write(le.tostring(tree, pretty_print=True, xml_declaration=True)) 
     file.close() 

私はこのエラーを取得する:私は、これはコードです...(= 1属性IDを持つ)要素をeleminate、削除要素なしでXMLを書き換えるために、ファイルからXMLを読み取る必要が :TypeError例外は:timelossため

<?xml version="1.0" ?><settings> 
    <modifica>0</modifica> 
    <source>0</source> 
    <soglie> 
     <diffPerson>19</diffPerson>  
    </soglie> 
    <size> 
     <onePerson>4</onePerson> 
     <twoPersons>7</twoPersons> 
     <blobSize>10</blobSize> 
     <dimBordoBlob>0</dimBordoBlob> 
    </size> 
    <invertX>0</invertX> 
    <invertY>0</invertY> 
    <feedback>1</feedback> 
    <camere> 
     <camera id="1"> 
      <larghezza>55</larghezza> 
      <altezza>100</altezza> 
      <ip>192.168.2.226</ip> 
      <posizione>1</posizione> 
      <offsetX>0</offsetX> 
      <offsetY>22</offsetY> 
      <port>5601</port> 
     </camera> 
    <camera id="2"> 
     <larghezza>55</larghezza> 
     <altezza>100</altezza> 
     <ip>192.168.2.226</ip> 
     <posizione>0</posizione> 
     <offsetX>45</offsetX> 
     <offsetY>0</offsetY> 
     <port>5600</port> 
    </camera> 
</camere> 
    <room> 
     <tipo>1</tipo> 
     <larghezzaCm>4000</larghezzaCm> 
     <altezzaCm>1500</altezzaCm> 
    </room> 
    <udpOut> 
     <ip>192.168.2.253</ip> 
     <port>3030</port> 
    </udpOut> 
    <udpIn> 
     <ip>192.168.2.245</ip> 
     <port>5050</port> 
    </udpIn> 
    <settings> 
     <life>10</life> 
    </settings> 
    <master>1</master> 
    <masterIP>192.168.2.245</masterIP> 
</settings> 

答えて

0

[OK]を申し訳ありません:書き込み()の引数はstrをしなければならない、ないバイト

これはXMLファイルです。

file = open("default.xml", 'w') 

溶液を

file = open("default.xml", 'wb') 

の代わりを設定することです

関連する問題