2016-05-23 3 views
0

Возможно ли напечатать шаблон строки из скомпилированного объекта xPathExpression?Печать выражения xpath из скомпилированного объекта javax.xml.xpath.XPathExpression

Это может потребоваться для случаев, когда выражение скомпилировано в один момент времени. но оценивается несколько раз в более поздней точке.

ответ

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_; 
    } 
} 
Смежные вопросы