XPathでの不正な引数の例外

私は以下のコードを実行するたびに、単語を見つけたらIllegalargument例外が返されますが、一致するものがなければエラーなしで終了します。誰も私が解決策を見つけるのを助けることができますか?

public static void main(String[] args) throws MalformedURLException, SAXNotRecognizedException, SAXNotSupportedException, ParserConfigurationException, IOException, SAXException, XPathExpressionException {

   Parser p = new Parser();
   SAX2DOM sax2dom = null;
   org.w3c.dom.Node doc  = null;

   URL url = new URL("http://stackoverflow.com/users/1042952/mostafa");

   p.setFeature(Parser.namespacesFeature, false);
   p.setFeature(Parser.namespacePrefixesFeature, false);
   sax2dom = new SAX2DOM();
   p.setContentHandler(sax2dom);
   p.parse(new InputSource(new InputStreamReader(url.openStream())));
   doc = sax2dom.getDOM();

   final String term = "mostafa";
   String expression = "//*[contains(text(),$term)]";
   final QName termVariableName = new QName("term");
   class TermResolver implements XPathVariableResolver {
      @Override
      public Object resolveVariable(QName variableName) {
         return termVariableName.equals(variableName) ? term : null;
      }
   }
   javax.xml.xpath.XPath xpath = XPathFactory.newInstance().newXPath();
   xpath.setXPathVariableResolver(new TermResolver());
   Node node = (Node) xpath.evaluate(expression, p, termVariableName);
   System.out.println("her is it"+node);
}
1

1 答え

1)あなたの即時のエラーは、 evaluate に渡された不正な結果の種類によるものです。 ドキュメント

returnTypeがXPathConstantsで定義されている型のいずれでもない場合(   NUMBER、STRING、BOOLEAN、NODEまたはNODESET)、次に   IllegalArgumentExceptionがスローされます。

2) evaluate の第2引数は、パーサではなくコンテキストノードでなければなりません。

次のようなものを使用してください:

Node node = (Node) xpath.evaluate(expression, doc, XPathConstants.NODE);

Note: You probably meant to capitalize Mostafa.

0
追加された
これはどういう意味ですか? 注:あなたはおそらくMostafaを大文字にすることを意味しました。
追加された 著者 lonesome,
そうですね、大文字小文字を区別しないようにするにはどうしますか?
追加された 著者 lonesome,
可愛い〜ありがとう
追加された 著者 lonesome,
@ user1064929 - 検索文字列では大文字と小文字が区別されます。
追加された 著者 Wayne Burkett,
@ user1064929 - の並べ替え。あなたはこれを行うことができます://* [翻訳する(テキスト()、 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'、 'abcdefghijklmnopqrstuvwxyz')、$ term)]
追加された 著者 Wayne Burkett,