XPath: Dopasuj całe słowo (użycie funkcji dopasowań z flagą niewrażliwą na wielkość liter)
Używając XPath, chciałbym „Dopasować całe słowo” (opcja dla użytkownika, tak jak w wyszukiwaniu VS).
Wygląda to na funkcjecontains
imatches
działają podobnie, chociaż mecze umożliwiają takie flagii
dla niewrażliwości na wielkość liter.
Innymi słowy, otrzymuję te same wyniki z tymi dwoma zapytaniami XPath:
<pets>
<dog name="Rupert" color="grey"/>
<dog name="Ralph" color="brown"/>
<cat name="Marvin the Cat" color="white"/>
<cat name="Garfield the Cat" color="orange"/>
<cat name="Cat" color="grey"/>
<cat name="Fluffy" color="black"/>
</pets>
Matches XPath: //cat[descendant-or-self::*[@*[matches(.,'Cat')]]]
returns:
<cat name="Marvin the Cat" color="white"/>
<cat name="Garfield the Cat" color="orange"/>
<cat name="Cat" color="grey"/>
Contains XPath: //cat[descendant-or-self::*[@*[contains(.,'Cat')]]]
returns:
<cat name="Marvin the Cat" color="white"/>
<cat name="Garfield the Cat" color="orange"/>
<cat name="Cat" color="grey"/>
Ale chciałbym użyćmatches
aby zwrócić wyniki pasujące tylko do całego słowa „Kot”:
<cat name="Cat" color="grey"/>
Jak mogę dopasować zapytanie dopasowania, aby pasowało do całego słowa?
EDYCJA: Zapomniałem wspomnieć, że muszę nadal używać funkcji dopasowań, ponieważ potrzebuję flagi niewrażliwości na wielkość liter.