2011-07-31 5 views
0

は、このコードを考えてみましょう:HasKeyValueからUnprefixedAttributeにコードを移行するにはどうすればよいですか?

import scala.xml.{Node,HasKeyValue} 

    def domatch(x:Node): Node = { 
    val hasBar = new HasKeyValue("bar") 

    x match { 
     case Node("foo", hasBar(z), _*) => z 
     case _ => null 
    } 
    } 

それをコンパイルし、I次の警告が表示されます。

error: class HasKeyValue in package xml is deprecated: 
     Use UnprefixedAttribute's extractor 

どのようにすべきであるようなコードを見て?

答えて

2
scala> import xml._ 
import xml._ 

scala> val hasBar = new HasKeyValue("bar") 
<console>:10: warning: class HasKeyValue in package xml is deprecated: Use UnprefixedAttribute's extractor 
     val hasBar = new HasKeyValue("bar") 
     ^
<console>:10: warning: class HasKeyValue in package xml is deprecated: Use UnprefixedAttribute's extractor 
     val hasBar = new HasKeyValue("bar") 
         ^
hasBar: scala.xml.HasKeyValue = [email protected] 

scala> <e bar="bar"/> match { case Node(_, hasBar(es), _*) => es } 
res0: scala.xml.Node = bar 

scala> <e bar="blerg"/> match { case Node(_, UnprefixedAttribute(_, es, _), _*) => es } 
res1: Seq[scala.xml.Node] = blerg 
+0

Mhhですが、今では属性「バー」とは一致しません... – soc