SWI-Prolog有很多提供一个通用的XML处理器。
library(sgml)
读/写XML结构化格式, library(xpath)
用于导航和更多...但如果我试图读取一个SVG,它是有效的XML,我得到的消息:
ERROR: SGML2PL(xml): ...my_file...svg:2: file "...myfile.path.../http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" does not exist
假。
有没有人有这个一个暗示? 我还希望改写最终修改后的文件内容保存的过程中与众不同的DTD。
我找到了解决办法,在本地保存DTD文件我用卷曲的话,我可以要求SGML库来使用它。
...
new_dtd(svg, DTD),
path(Dir, 'svg11.dtd', DtdFile),
load_dtd(DTD, DtdFile),
path(Dir, 'html_labels.svg', SvgFile),
load_structure(SvgFile, [Svg], svg:[dtd(DTD), dialect(xmlns), xml_no_ns(quiet)]),
...
正如我所说的,我得到了svg11.dtd
这样
$ curl http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd > svg11.dtd