0
コンパイルされたxPathExpressionオブジェクトから文字列パターンを出力することはできますか?コンパイルされたjavax.xml.xpath.XPathExpressionオブジェクトからxpath式を出力する
式が1つの時点でコンパイルされる場合に必要な場合があります。後で複数回評価した。
コンパイルされたxPathExpressionオブジェクトから文字列パターンを出力することはできますか?コンパイルされたjavax.xml.xpath.XPathExpressionオブジェクトからxpath式を出力する
式が1つの時点でコンパイルされる場合に必要な場合があります。後で複数回評価した。
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_;
}
}
ようになります。