10

我正在构建一个包含各种图像标签的 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"/>

谢谢!

4

2 回答 2

4

解决方案是用正确的 ascii 代码#38不是 #63(这是一个问号'?')替换&符号,因为我在误读这个问题后最初尝试过:使用“?” 在 SVG 中

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

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

于 2011-08-03T08:35:08.247 回答
3

在包括 SVG 在内的所有 XML 应用程序中,以下实体在没有自定义 DTD的情况下都是有效的:

  • &amp;- &
  • &gt; - >
  • &lt; - <

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

<image xlink:href="http://foo.com/bar.jpg?token=asdf&amp;exp=9384&amp;etc=etc"/>
于 2011-08-02T22:03:34.177 回答