是否可以从已编译的xPathExpression对象中打印字符串模式?
在某个时间点编译表达式的情况可能需要它。但是稍后会多次评估。
答案 0 :(得分:0)
XPathExppression
没有办法做到这一点。 (XPathExppression.toString
也没有为默认的JDK实现返回任何有意义的内容。)
如果你控制表达式的创建,你可以创建一个包装类来保存表达式字符串,并在调用toString()
时返回该字符串。
String exprString = ...;
XPathExpression expr = xpath.compile(exprString);
WrapperXPathExpr proxyExpr = new WrapperXPathExpr(expr, exprString);
并且包装类看起来像
public class WrapperXPathExpr implements XPathExpression {
private XPathExpression expr_;
private String exprString_;
public WrapperXPathExpr(XPathExpression expr, String exprString) {
expr_ = expr;
exprString_ = exprString;
}
public Object evaluate(Object item, QName returnType) throws XPathExpressionException {
return expr_.evaluate(item, returnType);
}
...
public String toString() {
return exprString_;
}
}