2011-03-01 61 views
2

是否有人知道如何解析大型XML文件使用Xpath使用vtd-xml庫在斯卡拉如何使用VTD-XML庫解析Scala中的XML文件?

+0

你還有你在這裏反映的問題http://stackoverflow.com/questions/5126703/arrayindexoutofboundexception-in-scala-程序usind-VTD-XML的? – huynhjl 2011-03-01 09:14:45

+0

我不知道發生了什麼事。?但它現在運作良好。 – AnsigT 2011-03-01 11:09:09

回答

1

此作品在我的本地機器上:

import com.ximpleware.{VTDGen, VTDNav, AutoPilot} 

val vtdgen = new VTDGen() 
val autopilot = new AutoPilot() 
autopilot.selectXPath("/CATALOG/CD/COUNTRY/text()") 
if (vtdgen.parseFile("catalog.xml", false)) { 
    val vtdnav = vtdgen.getNav() 
    autopilot.bind(vtdnav) 
    var i = -1 
    while({i = autopilot.evalXPath; i} != -1) { 
    println(vtdnav.toString(i)) 
    println(vtdnav.toNormalizedString(vtdnav.getText())) 
    } 
} 
autopilot.resetXPath() 

輸出上的catalog.xml輸入:

USA 
USA 
UK 
UK 
UK 
UK 
USA 
USA 
+0

謝謝你..它的作品嘛。 – AnsigT 2011-03-01 11:03:05

+0

酷,斯卡拉看起來相當不錯! – 2011-03-01 19:20:14

1

@ huynhjl:謝謝。它工作得很好。

使用

println(vtdnav.toString(i-1)) 
println(vtdnav.toNormalizedString(vtdnav.getText())) 

得到輸出

COUNTRY 
USA 
COUNTRY 
UK 
COUNTRY 
UK 
COUNTRY 
USA