我有一个xml RewriteRule,我正在尝试修改传递的节点n
。我想做一些像copy和amp;重命名n
,但这些功能仅适用于Elem。
如何将节点n
转换为枚举?
答案 0 :(得分:0)
我希望找到一种比这更简单的方法,但我最终使用Node中的属性构建了一个新的Elem,并且工作正常。
val wrapIndividualNodes = new RewriteRule {
override def transform(n: Node): NodeSeq = {
...
val nodesToRemove = "category"
-> val origElem = Elem(null, n.label, n.attributes, n.scope, false, n.child:_*)
val editedElem = origElem.copy( child = origElem.child.filterNot(_.label == nodesToRemove))
...
}
}
答案 1 :(得分:0)
您可以按如下方式从节点构建Elem:
Elem.apply(node.prefix, node.label, node.attributes, node.scope, true, node.child :_*)
答案 2 :(得分:0)
确保你真的在看Elem,而不是Node - Node是Elem的超集并包含其他东西,例如空格 - 将空白视为Elem是没有意义的,我认为如果你试试,你会得到一个例外。
但如果你保证得到一个Elem,例如在模式匹配之后,使用node.asInstanceOf[Elem]
。