将特有格式的.txt文件转换为XML

法制

我有几个大型的纯文本文件,这些文件都是我在博士学位期间制作的供个人使用的“词汇表”。它们的格式无用,如下所示:

%%% <entry i>

    Blah Blah Blah, see also > <entry j>


%%% <entry i+1>

等(请注意交叉引用。)

在当前状态下,这些文件不易使用(例如,使用LaTeX创建显示版本,或将条目的子集放在网站上);它们基本上只能在文本编辑器中浏览似乎将所有内容都转换为XML可能是增加灵活性和可用性的最佳方法,那么什么是最佳方法?

桑多·冈贝(SándorGombai)

这可能是python中此类转换器的基础:

#!/usr/bin/python

import fileinput
import re

entryre = re.compile( "^%%% <([^>]+)>")
seealsore = re.compile( "see also > <([^>]+)>")

def pnode(nodename, nodeblock):
    print "<" + nodename + ">"
    print nodeblock
    print "</" + nodename + ">"


block = ""
entry = ""
for line in fileinput.input():
    match = re.match( entryre, line)
    if match:
        if entry:
            pnode(entry, block)
            block = ""
            entry = ""
        entry = match.group(1)
    else:
        match = re.match( seealsore, line)
        line = re.sub( seealsore, r'<seealso>\1</seealso>', line)
        block += line

pnode(entry, block)

它读取任何文件(建议使用stdin)并写入stdout。只需将输出包装在xml头和尾之间即可。如果条目包含空格,则应小心。另外,如果块包含类似标签的(“”)子字符串,则需要进行其他转换。

但是,如果您只想浏览条目,建议使用简单的html。定义列表或表都可以很好地为您服务。转换代码只需要进行很小的更改。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章