import scala.xml.XML
import scala.xml.Elem
import scala.io.Source
val f = new java.io.File("d:\\tmp\\text.pptx.xml")
val xml = XML.loadFile(f)
val s = Source.fromFile("d:\\tmp\\keywords.txt")
val keywords = try s.getLines.toList finally s.close
def slideNumberList(k:String,xml:Elem):List[Int] = {
val eachSlide:Seq[Int] = {
for (s <- xml \ "Slide") yield {
val target = s \ "SlideBody"
if (target.text.contains(k)) {
(s \ "SlideNumber" \ "@value").text.toInt
} else {
0
}
}
}
eachSlide.toList.filter(n => n != 0)
}
val index = for (k <- keywords) yield (k,slideNumberList(k,xml))
for (i <- index) {
val key = i._1
val pageNumbers = i._2.mkString(",")
println(s"${i._1}\t${pageNumbers}")
}