max*_*dbe 13 scala cdata scala-xml
有没有办法在scala的cdata部分中放置一个变量
val reason = <reason><![CDATA[ {failedReason} ]]></reason>
Run Code Online (Sandbox Code Playgroud)
Bob*_*b G 27
它可能更简单:
val reason = <reason>{scala.xml.PCData(failedReason)}</reason>
Run Code Online (Sandbox Code Playgroud)
jce*_*ern 13
我不确定你是否可以通过原生XML支持获得它,但你可以做类似的事情:
scala.xml.XML.loadString("<reason><![CDATA[%s]]></reason>".format(failedReason))
Run Code Online (Sandbox Code Playgroud)
你以这种方式丢失了一些编译时验证,但它应该给你xml元素和你正在寻找的数据.由于它返回a scala.xml.Elem,您还可以将结果嵌入到更大的XML结构中.
编辑
在考虑了这一点之后,以下可能是一种更好(并且不那么脆弱)的方式.它将自由文本部分限制为仅限CDATA,从而最大限度地减少了不平衡表达式的可能性.
<reason>{ scala.xml.Unparsed("<![CDATA[%s]]>".format(failedReason)) }</reason>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2414 次 |
| 最近记录: |