如何使用Python添加xml标签?

时间:2018-09-09 10:30:11

标签: python python-3.x

我有这种格式的xml文件:

<root>
<AVIS_0>
      <avis>Une esthéticienne hors pair qui s'occupe très bien de 
  ses clientes elle à en plus des doigts de fée je la recommande 
   vivement
      </avis>
      <code_etab>52386561</code_etab>
      <Opinion From="0" category="général" polarity="positif" 
        selection="elle à en plus des doigts de fée je la recommande 
       vivement" target="NULL" to="0"/>
      <Opinion From="17" category="qualité" polarity="positif" 
      selection="Une esthéticienne hors pair qui s'occupe très bien de ses 
      clientes" target="esthéticienne" to="4"/>
  </AVIS_0>
  .
  .
  .
</root>

我想添加新的xml标记以获得这样的xml:

 <root>
   <AVIS_0>
     <sentences id ="1">
        <sentence id ="11">
           <avis>Une esthéticienne hors pair qui s'occupe très bien de 
            ses clientes elle à en plus des doigts de fée je la recommande 
                 vivement
            </avis>
            <Opinions>
              <Opinion From="0" category="général" polarity="positif" 
                       selection="elle à en plus des doigts de fée je la 
                        recommande vivement" target="NULL" to="0"/>
              <Opinion From="17" category="qualité" polarity="positif" 
                selection="Une esthéticienne hors pair qui s'occupe très 
                 bien de ses clientes" target="esthéticienne" to="4"/>
              <code_etab>52386561</code_etab>
            </Opinions>
           </sentence>
          <sentences>
  </AVIS_0>
  .
  .
  .
</root>

那么,有可能在Python下完成吗?

1 个答案:

答案 0 :(得分:0)

您可以使用ElementTree,ElementTree的纯Python实现以及从2.5开始的部分标准库。

import xml.etree.ElementTree

doc = xml.etree.ElementTree.parse('1.xml')
root = doc.getroot()
avis = root[0][0]
code_etab = root[0][1]
op1 = root[0][2]
op2 = root[0][3]

root[0].remove(avis)
root[0].remove(code_etab)
root[0].remove(op1)
root[0].remove(op2)

sentences = xml.etree.ElementTree.Element('sentences', {'id':'1'})
sentence = xml.etree.ElementTree.Element('sentence', {'id':'11'})

sentence.append(avis)
sentence.append(code_etab)
sentence.append(op1)
sentence.append(op2)

sentences.append(sentence)

root[0].append(sentences)

doc.write('newxml.xml')

有关更多信息,请查看官方documentation