5
Bất kỳ cách nào để đơn giản hóa những điều sau đây? hoặc giảm mã boilerplate với một chức năng khác?Scala XML, Nhận các nút mà cha mẹ có giá trị thuộc tính khớp với
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>)
Cảm ơn bạn đã cải thiện. Những gì tôi thực sự tìm kiếm là một cách để tạo ra một bộ chọn cho bộ lọc {_ \\ "@id" tồn tại (_.text == "1")}) sau đó nó trông giống như (x \\ "bar" \ @ ("@id", "1") \\ "tag" – eptx
Tôi thích ý tưởng của bạn. Tôi đã chỉnh sửa câu trả lời của mình bằng một giải pháp khả thi. – Lachlan