j'ai vu l'exemple suivant disccussed ici précédemment, où l'objectif était de retourner tous les noeuds qui contiennent un attribut avec un identifiant de X qui contient une valeur J'utilise Scala 2.7 et chaque fois que la valeur imprimée de retour est toujours vide. Tout le monde pourrait aider à ça? Désolé si je copie un autre fil ... mais je pensais que ce serait plus visible si j'en envoyais un nouveau?en ce qui concerne de trouver tous les nœuds qui ont un attribut qui correspond à une certaine valeur avec scala
3
A
Répondre
8
Selon Node
ScalaDoc, attribute
est défini comme suit:
def attribute(key: String):Option[Seq[Node]]
Par conséquent, vous devez modifier votre code de cette façon:
def attributeEquals(name: String, value: String)(node: Node) =
{
node.attribute(name).filter(_.text==value).isDefined // *text* returns a text representation of the node
}
Mais pourquoi ne pas simplement obtenir le même plus simple:
scala> (xml descendant_or_self) filter{node => (node \ "@class").text == "test"}
res1: List[scala.xml.Node] = List(<span class="test">hello</span>, <div class="test"><p>hello</p></div>)
Merci beaucoup c'est exactement ce qui manquait! :) – silverman