2012-05-04 64 views
1

SWI-Prolog作爲一個通用的XML處理器提供了許多功能。處理基於XML的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。

回答

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)]), 
... 

正如我所說的,我這樣

$ curl http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd > svg11.dtd 
svg11.dtd