Подтвердить что ты не робот

Предотвратите Scala от необходимости избегать двойных кавычек в XML

Если я сгенерирую Javascript в моем Scala коде, например:

<script type="text/javascript">
     foo("{bar}");
</script>

а Javascript содержит символ двойной кавычки (как в примере), он будет выглядеть как &quot;, когда XML будет преобразован в строку, а Firefox отклонит этот Javascript как синтаксическую ошибку.

Как я могу избежать этой ошибки Javascript, не удаляя &quot;, которые действительно нужны?

Я использую Play Framework 1.2.4 с модулем Scala 0.9.1, для которого требуется Scala 2.8.1.

4b9b3361

Ответ 1

что-то вроде этой работы для вас?

scala> val bar=scala.xml.Unparsed(""""hello"""")
bar: scala.xml.Unparsed = "hello"

scala> val x = <script type="text/javascript">foo({bar});</script>
x: scala.xml.Elem = <script type="text/javascript">foo("hello");</script>

Ответ 2

Если вы вызываете его из шаблона Play, вы можете сделать ${myscript.raw()}, а не просто ${myscript}. Тег # {verbatim/} также должен работать.