import java.lang._
import com.ximpleware._
object Sample {
def main(args :Array[String])= {
// println("helloo")
try{
var i :Int = -1
val vgen :VTDGen= new VTDGen()
val ap :AutoPilot =new AutoPilot()
ap.selectXPath("CATALOG/CD/COUNTRY/text()")
if(vgen.parseFile("../catalog.xml", false)) {
val vnav :VTDNav = vgen.getNav()
ap.bind(vnav)
while((i=ap.evalXPath)!= -1) {
println(vnav.toString(i))
println(vnav.toNormalizedString(vnav.getText()))
}
ap.resetXPath()
}
}
catch {
case e :Exception => println(e)
}
}
}
I have imported VTD-XML Library It compiles Well but On Execution prints an Exception
:java.lang.ArrayIndexOutOfBoundsException: -1
I have solved the while issue in the code. But the problem is I always get -1 for ap.evalXPAth
I believe the answer lies in the line
In Scala assignment returns Unit (equivalent to void in Java) and hence this loop cannot terminate. For example the program as follows loops infinitely