如何使用VTD-XML库在Scala中解析XML文件?

时间:2011-03-01 08:26:51

标签: scala xpath vtd-xml

有人知道如何在 Scala 中使用 vtd-xml 库使用 Xpath 解析大型XML文件吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

@ huynhjl :谢谢......效果很好。

使用

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

将输出设为

COUNTRY
USA
COUNTRY
UK
COUNTRY
UK
COUNTRY
USA