はい、Docsで、XML
の解析と更新についてよく分かりませんでした。
しかし、我々は考慮してこれを達成することができますXML Node
ここ
あなたのXMLオブジェクトのScalaのモデルを作成し、あなたの条件
で働く作業例があるScala Class
として
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
}
同じで、我々はすべてのXML request
ためscala class
を作成および操作するために、独自のユーティリティ関数を書くことができます。
play framework
でこれを行うライブラリまたはユーティリティが見つかった場合は、ここで更新します。