SVers图像的xlink:href属性中的&符号(&)?

时间:2011-08-02 16:07:00

标签: svg query-string urlencode ampersand xlink

我正在构建一个包含各种图像标记的SVG文档。图像的 xlink:href (源URL)属性包含带有&符号的查询字符串。如果我将它们作为%26 或ascii编码? 转义,则它们不是有效的查询字符串,服务器将无法传送图像。我无法用CDATA逃避它们,因为它们是属性(不是节点)。我已尝试在图像标记内创建 xlink:href 节点,但SVG解析器忽略了该节点。我想使用纯SVG(而不是HTML中的SVG),以便我可以在以后转换为JPG,因此编写脚本...

有关如何使以下工作的任何提示?

<image x="0" y="0" width="306" height="306" xlink:href="http://host.com/image.jpg?token=asdf&expiration=9384029&etc=etc"/>

谢谢!

2 个答案:

答案 0 :(得分:3)

解决方法是使用正确的ascii代码#38 #63 (这是一个问号')替换&符号? ')正如我在错误阅读这个问题后最初尝试的那样:using "?" in SVG href

感谢Stunti https://stackoverflow.com/users/54949/stunti

http://www.ascii.cl/htmlcodes.htm

答案 1 :(得分:1)

在所有XML应用程序(包括SVG)中,以下实体are valid没有自定义DTD:

  • &amp; - &amp;
  • &gt; - &gt;
  • &lt; - &lt;

在你的情况下,这应该可以在不诉诸丑陋的ASCII黑客的情况下工作:

<image xlink:href="http://foo.com/bar.jpg?token=asdf&amp;exp=9384&amp;etc=etc"/>