【问题标题】:Processing XML based DSL处理基于 XML 的 DSL
【发布时间】:2012-05-31 05:52:16
【问题描述】:

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。

【问题讨论】:

    标签: xml svg swi-prolog


    【解决方案1】:

    我找到了一个解决方案,将我用 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-12
      • 2015-10-07
      • 2016-12-31
      • 1970-01-01
      • 2016-10-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多