Jestem nowym użytkownikiem XPath.Wyrażenie XPath, aby znaleźć elementy, których nazwa tagu zawiera "Nazwa"
Szukam sposobu na uzyskanie wszystkich elementów, których nazwa tagu zawiera konkretny ciąg znaków.
Na przykład, jeśli mam XML jak poniżej, chcę uzyskać wszystkie elementy, których nazwa tagu zawiera słowo "Nazwa". tj. chcę pobrać następujące elementy: <SquareName>
, <RectangleName>
i <ParallelogramName>
.
Próbowałem niektórych kombinacji name()
, itp., Ale nie działało. Proszę sugerować.
<Objects>
<Four-Sided>
<Square>
<SquareName>ABCD</SquareName>
<Length>4</Length>
<Height>4</Height>
<Colour>Blue</Colour>
</Square>
<Rectangle>
<RectangleName>EFGH</RectangleName>
<Length>10</Length>
<Height>6</Height>
<Colour>Brown</Colour>
</Rectangle>
<Parallelogram>
<ParallelogramName>WXYZ</ParallelogramName>
<Length>12</Length>
<Height>4</Height>
<Colour>Black</Colour>
</Parallelogram>
</Four-Sided>
</Objects>
Po patrząc na wynik, uważam, że wśród elementów, które jest zwraca, muszę unikać jednego elementu o nazwie znacznika jako "PeriodName". Mogę programowo to zrobić, ale zastanawiałem się, czy XPath ma również rozwiązanie? – user2082317
Możesz użyć wyrażeń regularnych lub tylko dla tego, innego predykatu (lub połączyć je używając 'lub'): '// * [zawiera (local-name(), 'Name')] [local-name ()! = 'PeriodName'] ' –