Допустим, вы хотите выбрать элемент value
, который является дочерним по отношению к attribute
, имя которого - «Имя сотрудника».
Выражение XPath для этого следующее:
/attributes/attribute[@name="Employee Name"]/value
В XSL вы можете использовать его так:
<xsl:value-of select="/attributes/attribute[@name='Employee Name']/value"/>
Он построен следующим образом. Сначала вы хотите выбрать атрибут value
, родитель которого является элементом attribute
, родитель которого является корнем (я предполагаю) attributes
. Оператор /
указывает отношения родитель-потомок между элементами. Таким образом, выражение для выбора всех value
элементов будет следующим:
/attributes/attribute/value
Исходя из этого, вы хотите отфильтровать результат по некоторому другому атрибуту. В этом случае вы хотите фильтровать по атрибуту name
элемента attribute
(выбор имен может затруднить отслеживание). Фильтрация выполняется с помощью предложений []
для элементов, по которым вы хотите выполнить фильтрацию. В вашем случае это элемент attribute
:
/attributes/attribute[]/value
Теперь вам нужно что-то положить в фильтр. Символ @
указывает атрибуты элемента, по которому вы фильтруете, за которым следует имя нужного атрибута. Затем вы сравниваете атрибут с некоторым известным значением, чтобы получить приведенное выше выражение:
/attributes/attribute[@name='filter']/value