Получение значений атрибутов производится через конструкцию конструкция @[имя_атрибута], например @id возвращает значение атрибута id.
Пример XSL-шаблона для XML из предыдущего пункта:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/document"> <html> <head> <title><xsl:value-of select="title"/></title> </head> <body> <!-- Выбираем узлы structure --> <xsl:apply-templates select="structure" /> </body> </html> </xsl:template> <!-- Шаблон для отображения узлов /document/structure --> <xsl:template match="structure"> <p>Значение: <xsl:value-of select="value"/></p> <p>Значение параметра ID: <xsl:value-of select="@id"/></p> </xsl:template> </xsl:stylesheet>
Результирующий HTML-документ:
<html> <head> <title>Заголовок 1</title> </head> <body> <p>Значение: aaa</p> <p>Значение параметра ID: 1</p> <p>Значение: bbb</p> <p>Значение параметра ID: 2</p> </body> </html>
никак не могу понять. что делает данная строка. какой узел она выбирает? какие значения ID и откуда они вообще берутся? ( в админке у узлов айдишниками не пахнет. что такое structure где это вообще смотреть ?
Контроллеры показа в системе управления сайтом HostCMS генерируют XML, в этом XML содержится структурированная информация, которую нужно вывести на страницу. Посмотреть сгенерированные данные вы можете в клиентском разделе: https://www.hostcms.ru/documentation/step-by-step/top-panel/xml/
Строка <xsl:apply-templates select="structure" /> говорит о том, что для всех узлов XML, размещенных в /document/structure нужно применить шаблон, сам шаблон размещен ниже по коду:
<!-- Шаблон для отображения узлов /document/structure -->
<xsl:template match="structure">
...
</xsl:template>