Это выражение в скале:
<Interval>
<P v="1"/>
<Q v="0.0"/>
</Interval>
определенно вернет scala.xml.Node
в scala, но сначала scala.xml.Elem
. Вы можете сопоставить образец с ним следующим образом:
import scala.xml.Elem
def visit(elem: Elem) = {
elem match {
case e@Elem(_, "Interval",_, _, _*) => "identified!"
}
}
Или вы можете также сопоставить с шаблоном на child
, потому что вы сопоставляете шаблон с объектом n типа Elem
, как Elem(n.prefix, n.label, n.attributes, n.scope, n.child)
, и здесь child
элементы (это Seq
) сопоставляются с каждым Остальные элементы шаблона:
def visit(elem: Elem) = {
elem match {
case Elem(_, "Interval",_, _, emptyElem, nodeIWant@(<P/>), _*) =>
(nodeIWant \ "@v").text
}
}
которые возвращают 1
здесь, например.
Надеюсь, это поможет.