Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / apply-templates, как с ним бороться / 4 сообщений из 4, страница 1 из 1
27.03.2007, 11:29
    #34417707
SuSa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
apply-templates, как с ним бороться
Всем привет. В общем есть xsl:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
    <xsl:template match="//header">
  <xsl:choose>
         <xsl:when test="count(//header[@xml:lang=current()/@xml:lang])=1"> uslovie vipolnilos' udachno 
         </xsl:when>
         <xsl:otherwise> Error  </xsl:otherwise>
      </xsl:choose>
    </xsl:template>
   <xsl:template match="/">
      <xsl:apply-templates/>
   </xsl:template>
И допустим xml:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<Office-memo>
 <header xml:lang="ru">Государственное образовательное учереждение</header>
 <header xml:lang="ru">The university</header>
 <header xml:lang="fr">Univer</header>

 <university xml:lang="ru">"Государственный технический университет"</university>
 <university xml:lang="fr">"GTU"</university>
.....
</Office-memo>
результат: 4 обработанных условия и текст остальных узлов.Необходимо только условия (нечего левого)
Если в xsl вместо: <xsl:apply-templates/>, написать <xsl:apply-templates select="//header"/>
то работает правильно. Но тут одна заковырка в шаблоне match="/", помимо вызова есть еще кое-какая инфа которая мне нужна, шаблон по обработке тега, тоже не один. применить же мне надо только те проверки которые написаны.. т.о
Писать <xsl:apply-templates select="//..."/> для каждого шаблона черевато избыточностью кода.
Если просто убрать template match="/", результат будет такой же.
Вопрос: Как написать вызов шаблонов (<xsl:apply-templates/>) так чтобы он применил только описанные, не плодя код?
...
Рейтинг: 0 / 0
27.03.2007, 12:40
    #34417973
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
apply-templates, как с ним бороться
...
Рейтинг: 0 / 0
27.03.2007, 13:35
    #34418214
SuSa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
apply-templates, как с ним бороться
Это понятно, но вопрос осталься открытым. И сделал я это по нескольким причинам
1. Привел новый пример :)
2. В данном примере текст вылазит и без apply-templates
3. Лучше бы ответ дал.

Нашел в спецификации раздел про нормализацию текстовых полей, там такой участок:
В отсутствие атрибута select инструкция xsl:apply-templates обрабатывает все непосредственные потомки текущего узла, включая узлы текста. Однако те текстовые узлы, которые были вычищены как описано в главе [3.4 Удаление пробельных символов], обрабатываться не будут.
Пробовал не получилось, обработался xsl документ а не xml. Можешь пример привести чтобы текст вычистился в необрабатываемых элементах?
...
Рейтинг: 0 / 0
27.03.2007, 13:43
    #34418256
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
apply-templates, как с ним бороться
SuSa2. В данном примере текст вылазит и без apply-templatesэто я объснил в том топике.
SuSa3. Лучше бы ответ дал.ответ я дал в том топике.
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / apply-templates, как с ним бороться / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]