如何将Option [scala.xml.Elem]值转换为String

时间:2015-11-02 12:48:41

标签: xml string scala playframework playframework-2.3

我是项目中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值作为String获取,如下所示

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"->result.get.toString())像这样JsObject。当我从响应中获得Tags时,它只是显示值,而不显示 <form autocomplete="off" name="$parent.formLocalisation"> <input type="text" placeholder='countrycode' class="form-control input-md" ng-minlength="2" ng-maxlength="3" name="countrycode" ng-change="validLocalisationField('countrycode')" ng-model="countrycode" /> <input type="text" placeholder='country name' class="form-control input-md" ng-minlength="2" ng-maxlength="3" name="countryname" ng-change="validLocalisationField('countryname')" ng-model="countryname" /> </form>

1 个答案:

答案 0 :(得分:0)

默认情况下,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>