防止Scala不必要地转义XML中的双引号

时间:2012-04-03 13:18:54

标签: javascript xml scala escaping

如果我在我的Scala代码中生成一些Javascript:

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

并且Javascript包含双引号字符(如示例中所示),当XML转换为字符串时,它将显示为&quot;,并且Firefox将拒绝此Javascript,因为语法错误。

如果不删除实际需要 &quot;,我该如何避免此Javascript错误?

我正在使用Play框架1.2.4和Scala模块0.9.1,这需要Scala 2.8.1。

2 个答案:

答案 0 :(得分:16)

这样的东西对你有用吗?

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>

答案 1 :(得分:0)

如果你是从Play模板调用它,你应该可以执行$ {myscript.raw()}而不仅仅是$ {myscript}。 #{verbatim /}标签也应该有用。