質問

これをやりたいです:

//*ふ

名前がで終わるすべてのノードを返します。 ふー, 、 のような <tarfu /> そして <snafu />, 、 だがしかし <fubar />

役に立ちましたか?

解決

次のようなことを実行します。

//*[ends-with(name(), 'fu')]

適切な XPath リファレンスについては、以下を確認してください。 W3スクール.

他のヒント

この答えは次のとおりです 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」で終わる要素に一致するものを検索します

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top