XML インスタンスが与えられた場合:
<fruits>
<fruit>Apple</fruit>
<fruit>Orange</fruit>
<fruit>Banana</fruit>
</fruits>
私はループを使用しています:
XPathExpression expr = xpath.compile("/fruits/fruit/text()");
NodeList nodes = (NodeList) expr.evaluate(doc, XPathConstants.NODESET);
for (int i = 0 ; i < nodes.getLength() ; i++)
System.out.println(nodes.item(i).getNodeValue());
果物の名前のリストを印刷します。返されたシーケンスで名前が既に小文字lower-case
になっているように、外側の XPath 式で使用する方法はありますか? 次のように、 Java メソッドを使用したり、各項目で関数を呼び出したりしたくありません。String
toLowerCase()
lower-case()
System.out.println(xpath.compile("lower-case(.)").evaluate(nodes.item(i)));
... 1 つの XPath 式でそれを達成する方法はありますか?それは外側のループに対して 1 回だけ評価されますか?
Ivyファイルに次の Saxon 依存関係があるため、XPath 2.0 機能にもアクセスできます。
<dependency org="net.sf.saxon" name="Saxon-HE" rev="9.4"/>