使用Python在xml文件中查找和替换

时间:2015-02-17 09:45:02

标签: python xml csv

我是Python新手。 我有一个内部有html的xml文件和一个csv文件。

xml文件示例:

<example>
  <name id="{{2}}">1;Alex
2;345
3;10
4;math
5;pysics
6;chemistry
</name>
  <class>{{3}}</class>
    <modules>
      <module>{{4}}</module>
      <module>{{5}}</module>
      <module>{{6}}</module>
    </modules>
</example>

包含两列的CSV文件:

  i=1
  for line in inputfile.readlines():
     outputfile.write(line.replace('{{'+str(i)+'}}', 'value from 2nd colum of csv file'))
     i = i +1 

我必须使用csv文件第二列中的值替换{{}}中的值(引用位于第一列中的csv文件中)。

我能够成功读取csv文件(没问题)。 我正在寻找在xml文件中查找和替换每个{{}}的解决方案。

我试过

{{1}}

但它没有取代所有的值。

提前致谢。

1 个答案:

答案 0 :(得分:2)

这段代码可以解决问题:

from csv import reader

with open('test.xml') as inputfile:
    xml = inputfile.read()

with open('test.csv') as csvfile:
    for row in reader(csvfile, delimiter=';'):
        xml = xml.replace('{{%s}}' % row[0], row[1])

with open('output.xml', 'w') as outputfile:
    outputfile.write(xml)

此代码使用csv模块,这意味着您不必处理可能出现在csv数据中的转义或引用的复杂性。