A NodeSeq
- это набор Node
с, а не один узел:
scala> (<a><b>1</b><b>2</b></a>) \ "b"
res0: scala.xml.NodeSeq = NodeSeq(<b>1</b>, <b>2</b>)
Таким образом, вы должны сопоставить узлы:
scala> ((<a><b>1</b><b>2</b></a>) \ "b").map(_ match {
| case <b>{x}</b> => true
| case _ => false
| })
res24: scala.collection.immutable.Seq[Boolean] = List(true, true)
(Узлы имеют тенденциюбыть Elems, так что это работает хорошо. Я не знаю причины разделения; я думаю, что некоторые узлы могут иметь меньше связанных с ними, чем Elem.)