【问题标题】:How to convert Option[scala.xml.Elem] values into String如何将 Option[scala.xml.Elem] 值转换为字符串
【发布时间】:2015-11-02 12:48:40
【问题描述】:

我是Play Framework(Scala)的新手,在我的项目中我需要将XML响应值转换为普通String

我真正需要的东西

val result:Option[Elem] = //response from web server

例如,将此 XML 值视为 result 变量值

<response><play>Scala</play><version>2.3.9</version></response>

我需要像下面这样获取 XML 值作为字符串

println("resultString:="+resultString)

需要的输出

resultString:=<response><play>Scala</play><version>2.3.9</version><response>

我检查了以下两种方法,但它没有像我需要的那样将整个 XML 值转换为 String。它只给出了像 Scala2.3.9 这样的值,而不像 XML String。

val resultString:String = result.get.text
val resultString:String = result.get.toString()

已编辑

在打印result.get.toString() 时,它会将XML 值打印为String,但我在项目中所做的是我将String 值设置为一些JsObject,就像这样Json.obj("resultString"-&gt;result.get.toString())。当我从响应中得到JsObject 时,它只显示值,不显示Tags

【问题讨论】:

  • 你试过result.get.mkString吗?
  • 标签&lt;response&gt; 没有用&lt;/response&gt; 正确关闭。其他明智的result.get.toString 将起作用。
  • @johny 实际上我在这里得到了一些xml 值我发布了dummy 值。原始响应中的所有标签都已正确关闭。
  • 确保我刚刚在 REPL 中再次尝试过,toString 对我来说很好。
  • @johny 我检查了result.get.toString() 它返回的值与我在问题中提到的值相同。

标签: xml string scala playframework playframework-2.3


【解决方案1】:

默认情况下,Scala 具有您想要的行为。请参阅以下输出:

scala> val resultString = <response><play>Scala</play><version>2.3.9</version></response>
resultString: scala.xml.Elem = <response><play>Scala</play><version>2.3.9</version></response>

scala> println("resultString:="+resultString)
resultString:=<response><play>Scala</play><version>2.3.9</version></response>

这应该转换为字符串:

scala> resultString.toString
res1: String = <response><play>Scala</play><version>2.3.9</version></response>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-05
    • 1970-01-01
    • 2016-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-10
    • 1970-01-01
    相关资源
    最近更新 更多