Ответ 1
Для решения XPath:
//*[contains(local-name(), 'Name')]
Я новичок в XPath.
Я ищу способ получить все элементы, чье имя тега содержит определенную строку.
Например, если у меня есть XML, как показано ниже, я хочу получить все элементы, имя тега которых содержит слово "Имя". то есть я хочу получить следующие элементы: <SquareName>
, <RectangleName>
и <ParallelogramName>
.
Я попробовал несколько комбинаций name()
, contains()
и т.д., но это не сработало.
Пожалуйста, предложите.
<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>
Для решения XPath:
//*[contains(local-name(), 'Name')]
Поскольку префикс пространства имен не существует, вы также можете использовать
//*[contains(name(), 'Name')]