1
이 this post을 기반으로 특정 속성 값을 가지고있는 경우에만 이해를위한 노드를 추출하는 명확한 방법이 필요했습니다. 다음은 내가 생각해 낸 것입니다 :특정 값을 갖는 특정 속성을 가진 노드 만 추출하기
def attributeValue(attrs: (String, String)*)(n: Node) =
attrs.map { p =>
n.attribute(p._1).exists(_ == p._2)
} reduceLeft(_ && _)
다음은 원자 피드에서 항목 개체를 추출하는 예제입니다.
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)
}
제 질문은 다음과 같습니다. attributeValue를 구현하는 데 더 깔끔하고 관용적 인 방법이 있습니까?
반복 가능 # forall - 누락 된 부분입니다. 나는 다른 대답을 듣고 있지만 대니얼입니다. 감사합니다! – Chris