我对脚本非常缺乏经验,所以我真的需要你的帮助。我有一个 xml 文件,其中每条奇数行都有:
<![CDATA[<head>Wallpaper</head><body>1328758083110.jpg</body>]]></photo>
我希望能够编辑头部标签之间的每个“壁纸”部分,而不是说从文本文件中提取的内容,其中每个元素由换行符分隔。
这是一个相当广泛的问题,所以我很感激任何意见。我应该从哪里开始?
如果我正确理解了您的问题,则此 python 片段应该可以工作...我假设您的文本文件中的行数与您要在 XML 文件中编辑的行数相同,并且字符串“Wallpaper”不是t 在您不想编辑的任何行中。否则你可能需要一些不同的东西:
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()
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