如何解决Draw.io导出SVG因XHTML问题无法上传维基媒体?
解决Draw.io导出SVG上传维基媒体的XHTML兼容问题
问题背景
Draw.io导出的SVG包含维基媒体禁用的XHTML命名空间,导致上传时报错:
此SVG文件包含非法命名空间"http://www.w3.org/1999/xhtml"。
手动修改后常出现文件空白,以下是三种可行的解决方法:
方法1:Draw.io导出时直接规避(最简便)
- 导出SVG时,勾选**「精简SVG」**选项:
- 网页版:导出弹窗里直接勾选「精简」;
- 桌面版:在导出设置中找到对应选项。
该选项会自动移除XHTML命名空间、编辑器残留数据等冗余内容,导出的SVG直接符合维基媒体要求。
方法2:用Inkscape转换(精准可靠)
- 打开Inkscape,导入目标SVG文件;
- 点击**「文件」→「另存为」**,选择SVG格式;
- 在保存对话框的「SVG选项」中,取消勾选**「保留编辑器数据」和「保留XHTML内容」**,选择「SVG 1.1」作为保存版本;
- 保存后的文件会自动清理XHTML相关内容,同时完整保留图形结构。
方法3:手动修复代码(避免空白的关键步骤)
之前手动修改后空白是因为误删了必要元素,正确步骤如下:
- 用文本编辑器打开SVG文件;
- 删除所有带
xhtml:前缀的标签(如<xhtml:div>)及其内部内容(这些是Draw.io的编辑残留,不影响图形显示); - 删除SVG根标签中的
xmlns:xhtml="http://www.w3.org/1999/xhtml"属性; - 保留
xmlns:xlink="http://www.w3.org/1999/xlink"属性(维基媒体支持该命名空间,用于图形内的链接和引用); - 保存后用维基媒体自带的SVG检测工具验证,无报错即可上传。
内容的提问来源于stack exchange,提问作者Chlodio
相关产品推荐
相关产品推荐

