Подтвердить что ты не робот

Найти имена атрибутов, начинающиеся с определенного шаблона

Я ищу, чтобы найти все атрибуты элемента, которые соответствуют определенному шаблону.

Итак, для элемента

<element s2="1" name="aaaa" id="1" />
<element s3="1" name="aaaa" id="2" />

Мне бы хотелось найти все атрибуты, начинающиеся с 's' (возвращающее значение s1 для первого элемента и s3 для значения второй элемент).

Если это за пределами возможностей xpath, пожалуйста, дайте мне знать.

4b9b3361

Ответ 1

Использование

element/@*[starts-with(name(), 's')]

Это выражение XPath выбирает все атрибутивные узлы, имя которых начинается со строки 's' и которые являются атрибутами элементов с именем element, которые являются дочерними элементами текущего node.

starts-with() является стандартной функцией в XPath 1.0

Ответ 2

element/@*[substring(name(), 1,1) = "s"]

будет соответствовать любому атрибуту, начинающемуся с 's'.

Функция starts-with() может выглядеть лучше, чем при использовании substring()