【发布时间】:2016-05-20 07:54:53
【问题描述】:
使用 VTD-XML 2.11 (Java) API,在简单文本或 xml 元素上评估 XPath 表达式 concat() 时,得到的结果不是 2.0,它会失败并出现以下异常:
Exception in thread "main" com.ximpleware.XPathEvalException: Function Expr can't eval to node set
at com.ximpleware.FuncExpr.evalNodeSet(FuncExpr.java:1033)
at com.ximpleware.AutoPilot.evalXPath(AutoPilot.java:876)
这是以下程序:
private static String getElementValue() throws XPathParseException, XPathEvalException, NavException {
String value = null;
VTDGen gen = new VTDGen();
gen.setDoc(data.getBytes());
gen.parse(false);
VTDNav nav = gen.getNav();
AutoPilot pilot = new AutoPilot(nav);
pilot.selectXPath("concat(\"Hello\", \"Mr Buddy\")");
int bufferIndex = NO_MATCH;
if((bufferIndex = pilot.evalXPath()) != NO_MATCH) {
value= nav.getXPathStringVal();
}
System.out.println(value);
} // end of getElementValue()
【问题讨论】:
-
我想你可能想试试 evalXpathToString 方法...
-
那我怎么能通过xpath
-
如果您有任何示例如何连接两个 xpath 或一个 xpath + 常量值。
-
SelectXpath 是相同的,不同之处在于您如何评估 xpath.. 而不是使用 evalxpath,它假定返回一个 nodeset ,使用 evalxpath2string..
-
pilot.evalXPathToString();不接受任何参数,我的意思是 Xpath 值。
标签: java xml xpath concat vtd-xml