Как перенести код из HasKeyValue в UnprefixedAttribute? - PullRequest
0 голосов
/ 31 июля 2011

Рассмотрим этот код:

  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
    }
  }

При компиляции я получаю следующее предупреждение:

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

Как должен выглядеть код?

1 Ответ

2 голосов
/ 31 июля 2011
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 = scala.xml.HasKeyValue@62a28815

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
...