#xml #xslt
#xml #xslt
Вопрос:
У меня вопрос о том, как использовать атрибут выбора в apply-templates. Когда я пишу это: <ul><xsl:apply-templates select="authors/author" /></ul>
что это значит? Означает ли это, что следует применять шаблон, в котором узлы-авторы являются дочерними узлами узла authors, который является дочерним элементом текущего узла?
Следующее правило шаблона:
<xsl:template match="author">
<li><xsl:value-of select="."/></li>
</xsl:template>
Ответ №1:
Означает ли это, что он должен применять шаблон, в котором узлы-авторы являются дочерними узлами узла authors, который является дочерним для текущего узла?
Точно.
Ну, еще более точно: это означает, что процессор XSLT должен применять шаблоны ко всем <author>
узлам, которые являются дочерними по отношению ко всем <authors>
узлам, которые являются дочерними по отношению к текущему узлу.
Если существуют шаблоны mutliple, которые могут соответствовать <author>
, процессор XSLT решит, какой шаблон применить. Например:
<xsl:template match="author[not(@country = 'USA')]">
<!-- will execute for any non-U.S. authors, specifically -->
</xsl:template>
<xsl:template match="author">
<!-- will execute for all other authors -->
</xsl:template>