powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / вопрос по XSLT
3 сообщений из 3, страница 1 из 1
вопрос по XSLT
    #35208975
i__one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Помогите пожалуйста с таким вопросом:
Есть например такой xml:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
</Form local="true">
 <Gitems>
   <Items><Type mytype="true">Text<Type><Name>t1<Name> .... <Items>
   <Items><Type>But<Type><Name>b_ok<Name> .... <Items>
 </Gitems>
 <Gitems>
   <Items><Type mytype="true">But<Type><Name>b_c<Name> .... <Items>
 </Gitems>
</Form>

нужно в этом XML элементы <Itens> у которых тег <Type> имеет атрибут mytype заменить на другой элемент по определенным правилам. А остальное содержание исходного XML файла должно остаться без изменения.
Есть ли в XSLT возможность такого преобразования?

P.S. я знаю как это сделать обрабатывая каждый тег отдельно, но хочется обработать только элементы <Itens> у которых тег <Type> имеет атрибут mytype, а остальное не трогать.
...
Рейтинг: 0 / 0
вопрос по XSLT
    #35208980
i__one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в XML есть синтаксические ошибки, но это не важно. я суть проблемы постарался донести
...
Рейтинг: 0 / 0
вопрос по XSLT
    #35209252
i__one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вроде разобрался:
можно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
<?xml version="1.0" encoding="windows-1251" ?> 
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 <xsl:output method="xml" encoding="windows-1251" />

<xsl:template match="/ | @* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
</xsl:template>


<xsl:template match="Items">
 <xsl:choose>
  <xsl:when test="Type/@mytype"> 
    <!-- здесь спец обработка -->
  </xsl:when>
  <xsl:otherwise>
   <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
   </xsl:copy>
  </xsl:otherwise>
 </xsl:choose>
	
</xsl:template> 

</xsl:stylesheet>
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / вопрос по XSLT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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