SVG中的XPointers
我一直试图让XPointer URIs在SVG文件中工作,但迄今为止还没有任何运气。 在尝试一些更复杂和失败的事情之后,我将其简化为只引用一个ID。 但是,这仍然失败。
该规范似乎很清楚这个实现:
http://www.w3.org/TR/SVG/struct.html#URIReference
我在网上找到了一个在svg文档中应该是一个可用的XPointer参考的例子。 这是原创。 这是我拷出来的版本:
<?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="500" height="200" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <defs> <rect id="simpleRect" width="100px" height="75px"/> </defs> <use xlink:href="#simpleRect" x="50" y="50" style="fill:red"/> <use xlink:href="#xpointer(id('simpleRect'))" x="250" y="50" style="fill:yellow"/> </svg>
这应该显示两个矩形......一个红色和一个黄色。 我尝试使用Firefox 3.6和Inkscape 0.47进行渲染。 没有成功。 只有红色的矩形显示。
我错过了什么?
谢谢你尽你所能的帮助
目前(截至2016年3月10日,SVG 1.1第二版)不支持在浏览器中渲染XPointers。 W3Schools写道如下:
XPointer浏览器支持
XPointer没有浏览器支持。 但XPointer用于其他XML语言。
这有点令人沮丧,因为所有的官方文档都不会区分SVG的浏览器支持(互联网准备就绪)功能和SVG的技术支持,纯粹的类似于XML的功能。
从规范的链接部分:
<URI-reference> = [ <absoluteURI> | <relativeURI> ] [ "#" <elementID> ] -or-
<URI-reference> = [ <absoluteURI> | <relativeURI> ] [ "#xpointer(id(" <elementID> "))" ]
那么使用xpointer语法有什么好处? 我见过的所有svg实现都支持上面显示的替代(更短)的语法(#myId)。 xpointer语法似乎没有得到很好的支持。
链接地址: http://www.djcxy.com/p/89035.html上一篇: XPointers in SVG