xpath 1.0を使用して、最新のスナップショットのリリース番号を取得します。この例では0.0.3-SNAPSHOTになります。XPATH 1.0を使用して返されたノードセット内の部分文字列の最高値のフィルタ。
<html>
<head><title>Title</title>
</head>
<body>
<h1>Index </h1>
<pre>Name </pre><hr/>
<pre><a href="../">../</a>
<a href="0.0.1-SNAPSHOT/">0.0.1-SNAPSHOT/</a>
<a href="0.0.2-SNAPSHOT/">0.0.2-SNAPSHOT/</a>
<a href="0.0.3-SNAPSHOT/">0.0.3-SNAPSHOT/</a>
<a href="metadata.xml">metadata.xml</a>
</pre>
</body></html>
私はイムは、スナップショットのバージョンのhightest値は 常に最後のインデックス位置()になりますと仮定に慣れていない
xpath snapshot.xml "(//a)[last()-1]"
を使用してこれを行ってきた - 1-SNAPSHOT。
値(0.0.1、0.0.2)は常にドキュメントの上から下に向かって増加すると仮定できます。私は、次の
1を行うにはXPath式を書きたいと思い
は)私がした文字列SNAPSHOT
期待される結果
> 0.0.1-SNAPSHOT/
> 0.0.2-SNAPSHOT/
> 0.0.3-SNAPSHOT/
を含む唯一のアンカーリンクを返すために、完全なノードセットを解析します述語を使用してこれを行う方法はいくつかあります。
xpath snapshot.xml "(// pre/a/text()[contains(。、 'SNAPSHOT')] ' xpath snapshot.xml "(// a/text()[contains(。含まれているため、「スナップショット」)]」しかし、あまりにも多くのノードが、私は、その後のいずれか
2aでフィルタリングしたいと思いますので、返され
は))(可能なように見えるリターンをdoesntのセット、の最後のノードを取得します。文字列ではない私は、この
xpath snapshot.xml "(//a)[contains(text(),'SNAPSHOT')last()]"
xpath snapshot.xml "(//a)[contains(text(),'SNAPSHOT')][last()]"
xpath snapshot.xml "(//a)[not (contains(text(),'SNAPSHOT')) < text()]"
図2bのように失敗したノードセット
)は、最も高い値を持つノードを取得します。文字列は ストリング0.0.1を選択し、「0.0.3-SNAPSHOT」である場合を意味し、どの、0.0.2と0.0.3の前に-SNAPSHOTとmax値。
そして私は私が指導のためhttps://www.w3.org/TR/xpathを使用しています。この
xpath snapshot.xml "(//a)[ not(../a/text() > text()) ]"
のように失敗しました。
XPATH 1.0を使用して返されたノードセット内の部分文字列の最高値をフィルタする方法を教えてください。この場合も可能ですか?