如何编写Python或PHP脚本来编辑这个XML文件?
我想写一个脚本,用来编辑多个XML文件。这个脚本需要完成以下几件事:
- 找到标签“Preload”,删除整个标签;如果有“Preload=?sometext?”,也要删除。
- 找到标签“jumpable”,删除整个标签;如果有“jumpable=?sometext?”,也要删除。
- 找到“tween”,删除整个标签。
- 把“slide”替换成“title”,然后删除这一行。
- 找到“offsety”,删除整个标签。
- 找到“offsetx”,删除整个标签。
- 找到“titleoffsetx”,删除整个标签。
- 找到“presenter”,删除整个标签。
- 找到“controls”,删除整个标签。
- 找到“demooffsetx”和“demooffsety”,删除整个标签。
- 把“flv”替换成“src”,但如果是“.flv”就不替换。
- 删除类型标签,比如“type=?sometext?”。
脚本运行前:
<?xml version="1.0" encoding="utf-8"?>
<presentation>
<lesson>
<part src="0301p.flv" breadcrumb="This is example text1">
<cuepoints>
<cuepoint time="0:01" preload="priority" tooltip="Demo 3.1(A)" jumpable="yes">
<tween mode="instant" time="1" />
<slide flv="demos/0301d1.flv" demooffsetx="-180" demooffsety="60" type="demo"></slide>
<presenter />
<controls />
</cuepoint>
</cuepoints>
</part>
</lesson>
</presentation>
脚本运行后:
<?xml version="1.0" encoding="utf-8"?>
<presentation>
<lesson>
<part src="0301p.flv" breadcrumb="This is example text1">
<cuepoints>
<cuepoint time="0:01" tooltip="Demo 3.1(A)">
<title src="demos/0301d1.flv"></title>
</cuepoint>
</cuepoints>
</part>
</lesson>
</presentation>
4 个回答
0
看看PHP的SimpleXML这个工具。你可以在这里找到相关的例子:http://www.php.net/manual/en/simplexml.examples-basic.php
当然,这并不是你唯一的选择。只要在网上搜索“PHP XML解析器”或者“Python XML解析器”,你会找到很多可以使用的资源和库。
0
#!/usr/bin/python
import re
filename = 'editme.txt' #name of the file you want to edit
def edit(filename):
f = open(filename, 'rU') #reads your file
text = f.read() #puts everything in file into a string under var text
f.close() #closes file
text = re.sub(r'\s[Pp]reload="\w+"', '', text) #delete preload tag
text = re.sub(r'\s[Jj]umpable="\w+"', '', text) #delete jumpable tag
text = re.sub(r'<tween.+>\s+', '', text) #delete tween tag
text = re.sub(r'slide', 'title', text) #replaces slide with title tag
text = re.sub(r'\s\w+offset\w+=".+"', '', text) #delete offset/type tags
text = re.sub(r'<presenter.+>\s+', '', text) #deletes presenter tag
text = re.sub(r'\s+<controls.+>', '', text) #deletes controls tag
text = re.sub(r'<title flv', '<title src', text) #replaces flv with src in title tag
f = open(filename, 'w')
f.write(text) #replaces all text in file with the edited text
f.close()
edit(filename)
这个简单的Python脚本应该能输出你想要的结果。