gpt4 book ai didi

java - vtd-xml evalXPathToString 行为奇怪/不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 12:33:41 26 4
gpt4 key购买 nike

在下面的第二个示例中,为什么 evalXPathToString 打印 junk1.45 而不仅仅是 1.45

我使用的是 vtd-xml 2.12 版本。

String xml = "<xmlDoc><noele>junk</noele><valss>1.45</valss></xmlDoc>";

VTDGen vtdGen = new VTDGen();
vtdGen.setDoc(xml.getBytes(StandardCharsets.UTF_8));
vtdGen.parse(true);
VTDNav vtdNav = vtdGen.getNav();

AutoPilot autoPilot = new AutoPilot(vtdNav);
autoPilot.selectXPath("/xmlDoc/valss");
System.out.println(autoPilot.evalXPathToNumber()); // prints 1.45

autoPilot = new AutoPilot(vtdNav);
autoPilot.selectXPath("/xmlDoc/valss");
System.out.println(autoPilot.evalXPathToString()); // prints junk1.45

最佳答案

我在最新版本上尝试过这个...并且都返回 1.45...

这似乎是 2.12 中引入并随后报告和修复的错误之一。引入它的原因是因为 2.12 旨在完全支持混合内容类型的 XPath 评估...也就是说,如果您将 xpath "/xmlDoc"评估为字符串,它将返回 junk1.45..

此外,此错误仅涉及 evalXPathToString...而不涉及其他三种评估方法...我相信/xmlDoc/valss/text() 将是一种解决方法...

如果您不想等待 2.13 正式发布来修正此问题..您可以下载该文件并按照以下步骤自行构建 jar...

  1. 获取补丁...转到 vtd-xml 的 cvs 主机站点... http://vtd-xml.cvs.sourceforge.net/viewvc/vtd-xml/ximple-dev/com/ximpleware/LocationPathExpr.java

  2. 将文件拖放到 com.ximpleware 下

  3. 在 Windows 上运行 build.bat...或在 UNIX 计算机上运行等效的程序

  4. 获取新的 jar 文件并替换类路径中旧的 2.12 jar...

请告诉我它是否适合您......

关于java - vtd-xml evalXPathToString 行为奇怪/不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37565501/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com