使用其他文件中的数据编辑xml文件的脚本

时间:2012-04-10 04:08:10

标签: python xml perl scripting

我对脚本非常缺乏经验,所以我真的需要你的帮助。 我有一个xml文件,其中每个奇数行我都有:

<![CDATA[<head>Wallpaper</head><body>1328758083110.jpg</body>]]></photo>

我希望能够编辑每个&#34;壁纸&#34;在head标签之间分开来代替从文本文件中提取的内容,其中每个元素由换行符分隔。

这是一个非常广泛的问题,所以我很感激任何输入。我应该从哪里开始?

2 个答案:

答案 0 :(得分:1)

如果我理解你的问题,这个python片段应该有效...我假设你的文本文件中有相同数量的行,因为你想在XML文件中编辑行,并且字符串“Wallpaper “不在您不想编辑的任何行中。否则你可能需要不同的东西:

inFile = open('mytextfile.txt','r')

myTextData = []
for line in inFile:
    myTextData.append(line.strip())
inFile.close()

inFile = open('myXMLfile.xml','r')
outFile = open('myFinishedXMLfile.xml','w')
currentItem = 0
for line in inFile:
    if 'Wallpaper' not in line:
        outFile.write(line)
    else:
        left = line.find('Wallpaper')
        right = left + 9    # Wallpaper is 9 characters
        outFile.write(line[:left])
        outFile.write(myTextData[currentItem])
        outFile.write(line[right:])
        currentItem += 1
inFile.close()
outFile.close()

答案 1 :(得分:0)

perl -i.bak -lpe'
    BEGIN { open $file, "<", "text-file-with-substitutions"; }
    if (/Wallpaper/) {
        chomp(my $subst = readline $file);
        s/Wallpaper/$subst/
    }
' xml-file-with-cdata