Trouver tous les nœuds qui ont un attribut qui correspond à une certaine valeur avec scala

J'ai vu l'exemple suivant sur Nabbleoù l'objectif était de revenir tous les nœuds qui contiennent un attribut avec un id de X qui contient une valeur de Y:

//find all nodes with an attribute "class" that contains the value "test"
val xml = XML.loadString( """<div>
<span class="test">hello</span>
<div class="test"><p>hello</p></div>
</div>""" )

def attributeEquals(name: String, value: String)(node: Node) = 
{ 
    node.attribute(name).filter(_==value).isDefined
}

val testResults = (xml \\ "_").filter(attributeEquals("class","test")) 
//prints: ArrayBuffer(
//<span class="test">hello</span>, 
//<div class="test"><p>hello</p></div>
//) 
println("testResults: " + testResults ) 

Comme une extension de cette comment pourrait-on faire le suivant: Rechercher tous les nœuds qui contiennent tout attribut contient une valeur de Y:

//find all nodes with any attribute that contains the value "test"
val xml = XML.loadString( """<div>
 <span class="test">hello</span>
 <div id="test"><p>hello</p></div>
 <random any="test"/></div>""" )
 //should return: ArrayBuffer(
 //<span class="test">hello</span>, 
 //<div id="test"><p>hello</p></div>, 
 //<random any="test"/> )

Je pensais que je pouvais utiliser une _ comme suit:

val testResults = (xml \\ "_").filter(attributeEquals("_","test")) 

Mais ça ne fonctionne pas. Je sais que je peux utiliser le pattern matching, mais je voulais juste voir si je pouvais faire de la magie avec le filtrage.

Hourras Ed

source d'informationauteur ed.