Emacs处理大型XML文件
问题描述:
通常我需要读取具有相当简单结构的大型XML文件(> 100 MB)。我想使用emacs,但它不能很好地支持大文件。我想也许我可以使用一个Java应用程序,它可以为我做SAX或StAX解析,并为我提供所有必要的操作(例如搜索)。在emacs和外部java应用程序之间进行通信的“正确方式”是什么?Emacs处理大型XML文件
答
我不认为这是一个“正确的方式”,但这里有一些想法:
- 让你的Java应用程序呈现XML文档作为一堆组螺纹制品的;让它发言NNTP并使用Gnus,或者拿出自己的协议并为它写一个Gnus后端(参见Web-browsing backends获取灵感)
- 把XML文档想象成一个Lisp程序(S-表达式,XML元素,什么区别?),写一个Swank backend与SLIME通信在Emacs,然后用泥命令进行查询
- 写FUSE驱动程序,以便您可以安装你的XML文档作为一个文件系统,并使用Dired去探索它。
答
您可以尝试禁用该特定缓冲区的字体锁定模式。我打开了比使用emacs更大的文件。我注意到只有当文件中的行比我的屏幕大时,它们才开始换行。让他们离开屏幕并禁用字体锁定可以提高性能。
请把你的问题减少到一个。你想要一个解决方案来使用Emacs打开大文件,还是希望Emacs与外部应用程序进行通信? – 2009-05-04 12:15:25
我描述了我的问题和解决方案的草图。也许另一个解决方案已经存在,有人知道它。如果没有,我想实施我在想什么,这就是为什么我有第二个问题。 – 2009-05-04 17:57:45
您使用的是哪个版本的emacs?最新版本 - 22.3 - 对于大文件,我认为它支持得非常快。 – EfForEffort 2009-05-05 02:58:41