是的,我們沒有找到太多有關XML
解析和更新Docs。
,但我們可以通過考慮實現這個XML Node
爲Scala Class
這裏是一個在你的病情
適用於您的XML對象創建一個階模型的工作示例
class SomeXML(var name: String, var itemType: String, var category: String){
def toXML = { //converts to XML
<xml>
<name>{name}</name>
<type>{itemType}</type>
<category>{category}</category>
</xml>
}
//we can also use setters/getters without writing XML node everytime. Just calling .toXML gives the node
def updateName(newName: String) ={ //updates name
<xml>
<name>{newName}</name>
<type>{itemType}</type>
<category>{category}</category>
</xml>
}
//some other utilities of your choice
}
用於反序列化XML的同類對象
object SomeXML {
def fromXML(xmlNode: scala.xml.Node) = { //converts XML to Scala Object
val name = (xmlNode \ "name").text
val itemType = (xmlNode \ "type").text
val category = (xmlNode \ "category").text
new SomeXML(name, itemType, category)
}
}
控制器:
def updateXML() = Action(parse.xml) { request =>
val originalXML = SomeXML.fromXML(request.body.head) //(.head) reads XML node from Node sequence
val updatedXML = originalXML.updateName("YourName")
Ok(updatedXML)
//Output: YourName ogre dank
}
同樣,我們可以創建scala class
爲每XML request
,寫自己的效用函數來處理。
如果我在play framework
中找到任何庫或實用程序來執行此操作,我將在此更新。