Sur cette this post, je besoin d'un moyen propre pour extraire les nœuds d'une compréhension pour que si elles avaient des valeurs d'attributs spécifiques. Voici ce que je suis venu avec:nœuds quand ils n'extrayant que possèdent des attributs spécifiques avec des valeurs spécifiques
def attributeValue(attrs: (String, String)*)(n: Node) =
attrs.map { p =>
n.attribute(p._1).exists(_ == p._2)
} reduceLeft(_ && _)
Et voici un exemple qui l'utilise pour extraire des objets élément d'un flux d'atomes.
def parseAtomItems(ns: NodeSeq) = ns \\ "entry" flatMap { i =>
for(
t <- i \ "title";
l <- i.\("link").filter(attributeValue(
"type" -> "text/html",
"rel" -> "alternate"
).flatMap(_.attribute("href"))
) yield FeedItem(t text, l text)
}
Ma question est la suivante: existe-t-il un moyen plus propre/plus idiomatique d'implémenter attributeValue?
Iterable # forall - c'est la pièce manquante. Je suis ouvert à d'autres réponses, mais qui est assez agréable Daniel, je vous remercie! – Chris