我有一个包含许多未知属性的节点的 NodeSeq。必须验证并重新创建 NodeSeq,并将错误(如果遇到)添加为节点中的属性。
下面的解决方案有效,但我想知道是否有更优雅的方式来实现我的目标?
def validateErrors (nodes:NodeSeq):NodeSeq={
var newNodes = new Queue[Node]()
nodes.foreach ( n => {
var error:Boolean = false
var errorMessage:String = ""
//...do many complex validations
// and get the error status code and error message
if (error)
newNodes += AddError(n,errorMessage)
else
newNodes +=n
})
newNodes
}
private def AddError (node:Node, message:String ):Node= node match {
case elem : Elem => elem % Attribute(None, "color", Text("red"), Null) % Attribute(None, "message", Text(message ), Null) //and many more
case other => other
}