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 に答える