我正在尝试使用 RuleTransformer 在 Scala 中删除带有前缀的属性。
虽然以下适用于无前缀属性:
val xml = <foo><bar attr="attval">content</bar></foo>
val rw1 = new RewriteRule {
override def transform(n: Node) = n match {
case Elem(null, "bar", a, s, children @ _*) =>
Elem(null, "bar", a.remove("attr"), TopScope, children: _*)
case x => x
}
}
val rt = new RuleTransformer(rw1)
rt(xml)
我没有成功使用前缀属性(注意“bar”元素的属性“attr”具有前缀“pre”):
val xml = <foo><bar pre:attr="attval">content</bar></foo>
val rw1 = new RewriteRule {
override def transform(n: Node) = n match {
case Elem(null, "bar", a, s, children @ _*) =>
Elem(null, "bar", a.remove("attr"), TopScope, children: _*)
case x => x
}
}
val rt = new RuleTransformer(rw1)
rt(xml)
我试图使用
a.remove("pref",TopScope,"attr")
定义为
MetaData.remove(namespace: String, scope: NamespaceBinding, key: String)
没有任何成功。
我是 Scala 初学者,所以如果这是一个微不足道的问题,请多多包涵。