Амперсанды (&) в xlink: href атрибуты изображений SVG? - PullRequest
7 голосов
/ 02 августа 2011

Я создаю документ SVG, который содержит различные теги изображений. Атрибуты xlink: href (исходный URL) для изображений содержат строки запроса с амперсандами. Если я укажу их как % 26 или кодировку ascii ? , они не будут корректными строками запроса, и сервер не доставит изображение. Я не могу избежать их с CDATA, потому что они атрибуты (не узлы). Я попытался создать узел xlink: href внутри тега изображения, но этот анализ игнорируется анализатором SVG. Я хочу использовать чистый SVG (не SVG в HTML), чтобы потом можно было преобразовать его в JPG, поэтому сценарии отсутствуют ...

Любые советы о том, как я могу заставить работать ниже?

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

Спасибо!

Ответы [ 2 ]

3 голосов
/ 03 августа 2011

Решение состоит в том, чтобы заменить амперсанды на правильный код ascii # 38 и Not # 63 (что является знаком вопроса??) КакИзначально я попытался после неправильного прочтения этого вопроса: , используя "?"в SVG href

Спасибо Стунти https://stackoverflow.com/users/54949/stunti

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

1 голос
/ 03 августа 2011

Во всех приложениях XML, включая SVG, следующие объекты действительны без специального DTD:

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

В вашем случае это должно работать, не прибегая к уродливым ASCII-взломам:

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