我希望您能用Clojure解析.MXL文件(MusicXML)。
到目前为止,我已经看到了许多处理.XML文件的工具,但是我找不到处理.MXL文件的方法。也许我应该先将MXL转换为XML,但我不知道如何操作。
到目前为止,我已经看到了许多处理.XML文件的工具,但是我找不到处理.MXL文件的方法。也许我应该先将MXL转换为XML,但我不知道如何操作。
(defn extract-mxl [path]
(let [[_ filename] (re-matches #"(.*)\.mxl$" (.getName (java.io.File. path)))
zipfile (java.util.zip.ZipFile. path)
zipentry (.getEntry zipfile (str filename ".xml"))
in (.getInputStream zipfile zipentry)]
(slurp in)))
MusicXML的.mx1文件的zip结构类似于EPUB格式。有关在MXL存档中查找XML乐谱数据的更多信息,请参见MusicXML教程中的http://www.musicxml.com/tutorial/compressed-mxl-files/zip-archive-structure/。
如果有人偶然发现这个问题,无法解压缩的mxl文件:
在Mac上,我只需将其重命名为.zip,就可以成功解压缩了!