我想写一个编辑多个XML文件的脚本,我想有一个脚本可以执行以下操作;
在剧本之前:
<?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>
答案 0 :(得分:0)
查看PHP的SimpleXML。 http://www.php.net/manual/en/simplexml.examples-basic.php
当然,这不是你唯一的选择。只需使用Google搜索“PHP XML Parser”或“Python XML Parser”,您就可以获得丰富的资源和库。
答案 1 :(得分:0)
您是否考虑过使用XQuery转换xml数据? XQuery是一种用于xml转换的语言。在我看来,使用XQuery脚本将是解决问题的最佳方法。 XQuery 您只需要一个XQuery引擎来执行您的脚本,该脚本将输入xml转换为输出(如下所示:MXQuery)
答案 2 :(得分:0)
我建议使用基于python的解决方案lxml。恕我直言,它是最好的选择,因为它非常丰富的功能允许XPath,etree或objectify,简单的字符串解析和tostring转换等。
PHP根本没有为您提供等效的工具集。
答案 3 :(得分: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脚本应该输出你想要的东西。