1

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。

4

1 回答 1

0

我找到了一个解决方案,将我用 curl 获得的 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
于 2012-05-30T21:52:16.267 回答