powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / проблема с namespace в xslt преобразовании
8 сообщений из 8, страница 1 из 1
проблема с namespace в xslt преобразовании
    #36208462
anemon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите решить вопрос:
нужно сделать преобразование xslt двух xmlок, у каждой - свой namespace. Но некоторые ноды в хмлках совпадают, соответственно в xslt должен использоваться один шаблон для обоих xml.
Как это реализовать?
...
Рейтинг: 0 / 0
проблема с namespace в xslt преобразовании
    #36208748
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
  xmlns:ns1='mynamespace1'>
  xmlns:ns2='mynamespace2'> 

  <xsl:template match="ns1:item">
    .............................
  </xsl:template>

  <xsl:template match="ns2:item">
    .............................
  </xsl:template>
</xsl:stylesheet>

С уважением, Vasilisk
...
Рейтинг: 0 / 0
проблема с namespace в xslt преобразовании
    #36209163
anemon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_,
Вы меня недопоняли наверно.
Ноды в xmlках совпадают, т.е. у обоих есть например нод Header. И, чтобы не дублировать код, хотелось бы написать
Код: plaintext
1.
2.
<xsl:template match="Header">
</xsl:template>
а не
Код: plaintext
1.
2.
3.
4.
5.
<xsl:template match="ns1:Header">
</xsl:template>

<xsl:template match="ns2:Header">
</xsl:template>

Контент в template у обоих нэймспейсов один и тот же..
...
Рейтинг: 0 / 0
проблема с namespace в xslt преобразовании
    #36211154
Борат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
anemon,

А в чем собственно проблема?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
  xmlns:ns1='mynamespace1'>
  xmlns:ns2='mynamespace2'> 

  <xsl:template match="ns1:item|ns2:item">
    .............................
  </xsl:template>

</xsl:stylesheet>
...
Рейтинг: 0 / 0
проблема с namespace в xslt преобразовании
    #36211174
Борат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно еще проще (если все элементы с одинаковыми именами должны обрабатываться одинаково):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<xsl:stylesheet version = '1.0' 
                             xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
                             xmlns:ns1='mynamespace1'
                             xmlns:ns2='mynamespace2'
                             extension-element-prefixes="ns1 ns2">

  <xsl:template match="item">
    <!-- Here will be processed both ns1:item and ns2:item -->
  </xsl:template>

</xsl:stylesheet>
...
Рейтинг: 0 / 0
проблема с namespace в xslt преобразовании
    #36212717
anemon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Борат

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
  xmlns:ns1='mynamespace1'>
  xmlns:ns2='mynamespace2'> 

  <xsl:template match="ns1:item|ns2:item">
    .............................
  </xsl:template>

</xsl:stylesheet>


В этом случае нэймспэйсы придется писать во всех вложенных темплэйтах:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 
 <xsl:template match="ns1:item|ns2:item">
      <xsl:template match="ns1:item1|ns2:item1">
    .............................
  <xsl:template match="ns1:item2|ns2:item2">
    .............................
  </xsl:template>
  </xsl:template>
  </xsl:template>

А если делать с extension-element-prefixes="ns1 ns2", то xslt преобразование отказывается применяться вообще, выводятся все значения нодов в строчку
...
Рейтинг: 0 / 0
проблема с namespace в xslt преобразовании
    #36213711
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anemonВ этом случае нэймспэйсы придется писать во всех вложенных темплэйтах:Какие вложенные темплейты?
MSDN<xsl:template> Element

Parent elements - xsl:stylesheet, xsl:transform
...
Рейтинг: 0 / 0
проблема с namespace в xslt преобразовании
    #36214685
anemon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Забейте вощем, от проблемы избавилась убрав нэймспэйсы в хмлках
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / проблема с namespace в xslt преобразовании
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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