Случай соответствия атрибута XSL - PullRequest
2 голосов
/ 23 июня 2009

Я отлаживаю таблицу стилей xsl другого человека и заметил множество совпадений шаблонов, направленных на сокрытие определенного содержимого.

Ex: <tag hide="X">

Так что их правила выглядят примерно так.

<xsl:template match="tag1[@hide='x']" />
<xsl:template match="tag2[@hide='x']" />
<xsl:template match="tag3[@hide='x']" />

Похоже, что есть совпадение для каждого возможного тега, который может появиться в документе, который составляет около тридцати или около того. Итак, мой вопрос: есть ли лучший способ сделать это в xsl, чем иметь список совпадений шаблонов для того же совпадения атрибута?

Ответы [ 2 ]

6 голосов
/ 23 июня 2009

Попробуйте это:

<xsl:template match="*[@hide='x']" />
2 голосов
/ 23 июня 2009

Если вы хотите более точно определить, что соответствует шаблону, вы можете сделать:

<xsl:template match="*[
  contains('|tag1|tag2|tag3|' , concat('|', name(), '|')) 
  and 
  @hide='x'
]" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...