5
Jakikolwiek sposób uprościć następujące elementy? lub zredukować kod z inną funkcją?Scala XML, pobierz węzły, w których element nadrzędny ma wartość atrybutu, dopasowanie
scala> val ns = <foo><bar id="1"><tag>one</tag><tag>uno</tag></bar><bar id="2"><tag>two</tag><tag>dos</tag></bar></foo>
ns: scala.xml.Elem = <foo><bar id="1"><tag>one</tag><tag>uno</tag></bar><bar id="2"><tag>two</tag><tag>dos</tag></bar></foo>
scala> (ns \\ "bar" filterNot{_ \\ "@id" find { _.text == "1" } isEmpty}) \\ "tag"
res0: scala.xml.NodeSeq = NodeSeq(<tag>one</tag>, <tag>uno</tag>)
Dzięki za poprawę. To, czego naprawdę szukam, to sposób na stworzenie selektora dla filtra {_ \\ "@id" istnieje (_.text == "1")}), wtedy wygląda to jak (x \\ "bar" \ @ ("@id", "1") \\ "tag" – eptx
Podoba mi się twój pomysł. Edytowałem swoją odpowiedź z możliwym rozwiązaniem. – Lachlan