如何用Python添加xml标记?

2024-05-03 15:51:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个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下实现呢


Tags: deroottrsespairquiclientesbien
1条回答
网友
1楼 · 发布于 2024-05-03 15:51:47

您可以使用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

相关问题 更多 >