質問
これをやりたいです:
//*ふ
名前がで終わるすべてのノードを返します。 ふー, 、 のような <tarfu />
そして <snafu />
, 、 だがしかし <fubar />
解決
他のヒント
この答えは次のとおりです XPath 1.0 に相当するものが存在しない場合、 XPath 2.0標準のends-with()関数.
次の XPath 1.0 式は、名前が文字列「fu」で終わる XML ドキュメント内のすべての要素を選択します。
//*[substring(name(),string-length(name())-1) = 'fu']
私は Dimitre Novatchev の答えに苦労しました。一致が返されませんでした。XPath には、「fu」の長さが 2 であることを示すセクションが必要であることはわかっていました。
何を部分文字列にするかを決定するには、string-length('fu') を使用することをお勧めします。
彼の回答で結果が得られず、xpath 1.0 による解決策が必要な場合は、次のようにします。
//*[substring(name(), string-length(name()) - string-length('fu') +1) = 'fu']
「fu」で終わる要素の一致を検索します
または
//*[substring(name(), string-length(name()) - string-length('Position') +1) = 'Position']
「Position」で終わる要素に一致するものを検索します
所属していません StackOverflow