在python中编写XML行

时间:2013-04-23 07:46:27

标签: python xml elementtree

我的xml文件就像这样

<S_Row>
     <S_Cell><S_CellBody></S_CellBody></S_Cell>
     <S_Cell><S_CellBody></S_CellBody></S_Cell>
     <S_Cell><S_CellBody></S_CellBody></S_Cell>
</S_Row>

我在python中处理它:

for i, S_Cell in enumerate(S_Row.findall('S_Cell')):
        for S_CellBody in S_Cell.getchildren():
           if i==0:
              S_CellBody.text="ABC"

这在xml文件中给出了这样的输出:

  <S_Row>
     <S_Cell><S_CellBody>ABC</S_CellBody></S_Cell>
     <S_Cell><S_CellBody></S_CellBody></S_Cell>
     <S_Cell><S_CellBody></S_CellBody></S_Cell>
   </S_Row>

现在,如果我想添加另一行并在第二行(第一列)中添加元素,如下所示:

   <S_Row>
     <S_Cell><S_CellBody>ABC</S_CellBody></S_Cell>
     <S_Cell><S_CellBody></S_CellBody></S_Cell>
     <S_Cell><S_CellBody></S_CellBody></S_Cell>
   </S_Row>

   <S_Row>
     <S_Cell><S_CellBody>DEF</S_CellBody></S_Cell>
     <S_Cell><S_CellBody></S_CellBody></S_Cell>
     <S_Cell><S_CellBody></S_CellBody></S_Cell>
   </S_Row>

我该怎么办?

1 个答案:

答案 0 :(得分:0)

考虑使用XMLstring

import cElementTree    
a1=cElementTree.fromstring(a)
strlst=['ABC','DEF','GHI']
for i,row in enumerate(a1.findall('S_Row')):    
    cb = row.getchildren()[0].getchildren()[0]
    cb.text = strlst[i+1]         
cElementTree.tostring(a1)