gpt4 book ai didi

xml - 带!=的VTD-XML xpath不再起作用

转载 作者:行者123 更新时间:2023-12-03 16:52:18 25 4
gpt4 key购买 nike

自我们更新资料库以来,我已经面临此问题2天了。我们有很多这种xpath:

/root/temp[@attr!='abcd']


自我们将库更新为2.13以来,这些功能不再起作用。这些在2.11版本上工作正常,但在> = 2.12版本上不再工作。这个问题很容易重现:

String test = "<root><attr temp='abcde'></attr></root>";
VTDGen vg = new VTDGen();
vg.setDoc(test.getBytes());
vg.parse(false);
VTDNav vn = vg.getNav();

AutoPilot ap = new AutoPilot(vn);
ap.selectXPath("/root/attr[@temp!='abcd']");
System.out.println(ap.evalXPath());//expecting a positive int, get -1 instead


由于另一个错误,我们进行了更新,但是现在我们真的被卡住了。有任何想法吗?我们还有其他语法可以用来绕过此错误吗?我们尝试使用 /root/attr[not(@temp='abcd')]并使用这种简单的情况,但是我们不确定这对于每个包含“!=”作为运算符的xpath都是有效的。

请注意,即使使用xpath之类的 /root/attr[@temp!=''],2.11仍可正常工作,在该版本之后,似乎 !=运算符已损坏,至少对于我们习惯的用法而言。

编辑:
我们之所以不使用“ not”语法,是因为在这种情况下

<root>
<nodes>
<node attr="1" />
<node attr="2" />
<node attr="3" />
</nodes>
<nodi>
<nodo attr="1" />
<nodo attr="2" />
<nodo attr="3" />
</nodi>
</root>


这些xpath:

/ root / nodes / node [@attr!= / root / nodi / nodo / @ attr]

/ root / nodes / node [not(@ attr = / root / nodi / nodo / @ attr)]

返回不同的结果。我知道这是一个非常简单的示例,只是我们不能真正确定通过简单的查找和替换即可使所有功能正常工作。我只是深入研究源代码,并且注意到解析器只是剪切了!在xpath表达式之外。

最佳答案

我将您的代码粘贴到eclipse编辑器中,得到的答案是2 ..而不是-1。

因此,我可以说的是您尚未获得最新版本2.13.1。

您能否访问vtd-xml网站并获取版本。

https://sourceforge.net/projects/vtd-xml/files/vtd-xml/ximpleware_2.13_2/ximpleware-2.13.2-java.zip/download

编辑:请转到cvs repo并下载此parser.java文件...这是我的修复程序所在的位置...请确保您具有...

http://vtd-xml.cvs.sourceforge.net/viewvc/vtd-xml/ximple-dev/com/ximpleware/xpath/parser.java?revision=1.33

编辑:我已经发布了此错误的修复程序,版本为2.13_2,并且今天已发布。

关于xml - 带!=的VTD-XML xpath不再起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44132356/

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