SVG / XML:删除不需要的 XML / SVG www.w3.org/2000/svg 标签?
我们喜欢将 SVG 代码与 JQuery 模板混合在一起。当我们从 Adobe Illustrator 或 Inkscape 保存 SVG 图形时,它们不仅仅具有 xmlns="http://www.w3.org/2000/svg"
命名空间标记,还具有专有的“提示”或HTML 5 浏览器中将忽略的代码。
例如,我们希望在 Inkscape 中创建图形,然后使用它们,而无需手动挑选不需要的、被忽略的标签,甚至可能格式化它们。
是否有代码可以删除或缩小这些基于 xmlns="http://www.w3.org/2000/svg"
的程序生成的不兼容的 svg 标签?
我们将使用 ASP.NET MVC 3 通过 JQuery .ajax 调用来提供这些模板,因此是否有基于命名空间的 C# XML“清理器”的潜力?
We like mixing SVG code with JQuery templates. When we save SVG graphics from Adobe Illustrator or Inkscape, they have more than just the xmlns="http://www.w3.org/2000/svg"
namespace tags, having proprietary "hints" or code that will be ignored in a HTML 5 browser.
We want to create graphics in Inkscape for example, then use them without having to manually cherry pick the unwanted, ignored tags, possibly even formatting them.
Is there code out there that could remove or minify the non-compliant svg tags produced by these programs based on xmlns="http://www.w3.org/2000/svg"
?
We will use ASP.NET MVC 3 to supply these templates using JQuery .ajax calls, so there's the potential of a C# XML "cleaner" based on a namespace?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您可以使用 XSLT,则以下转换将删除所有不在 SVG 名称空间中的元素:
需要稍微小心才能正确处理属性。一些 SVG 编辑软件会添加额外的属性,因此当我们复制属性时,我们只复制默认命名空间中的属性,因此非 SVG 标准属性也会被删除。
If you can use XSLT, the following transform will drop all elements that are not in the SVG namespace:
A little care is need to handle attribute correctly. Some SVG editing software will add additional attributes, so when we copy attributes, we only copy those in the default namespace so non-SVG standard attributes will also get stripped.
查看 Jeff Schiller 的工具 Scour:http://www.codedread.com/scour/
Check out Jeff Schiller's tool Scour: http://www.codedread.com/scour/