2016-05-23 5 views

答えて

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_; 
    } 
} 
ようになります。
関連する問題