如何在VTD Xpath查找上输入名称空间前缀
我正在构建基于VTD的XML解析引擎,以便处理来自多个输入系统的文件。
我目前正在尝试从带有命名空间前缀的标签中获取值:
CLIENT NAME 1
并查询以下Xpath:
//client/age/text() //client/name/text()
如何设置VTD AutoPilot忽略名称空间前缀?
注意 :我无法更改xpath,因为我已经使用JDK的默认xpath引擎实现了这个引擎。
更新 :请参阅下面我用来测试的代码。 文件类似于顶部的文件:
@Test public void doFile() throws Exception { byte[] xmlData = FileUtils.loadFile("namespace-test.xml"); VTDGen gen = new VTDGen(); gen.setDoc(xmlData); gen.parse(false); VTDNav vtd = gen.getNav(); AutoPilot pilot = new AutoPilot(vtd); pilot.selectXPath("//clients"); int re = pilot.evalXPath(); System.out.println(re); if (re >= 0) { System.out.println(vtd.toString(re)); } }
根据@ vtd-xml-author评论,我获得了最新版本的VTDNav.java文件,并在我自己的项目中编译。
该解决方案首次尝试!