powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / переименовать нужные ноды взяв название из атрибута
3 сообщений из 3, страница 1 из 1
переименовать нужные ноды взяв название из атрибута
    #39429240
RulonOboev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день,

подскажите как решить вопрос,
требуется сделать XSLT преобразование что бы на выходе получить вместе нод с названием mis название которое было в атрибуте qname

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<mis qname="название_ноды_1"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<name>
		<value>Зав. отделением</value>
	</name>
	<mis qname="название_ноды_2">
		<name>
			<value>Данные осмотра</value>
		</name>
        <test>
           <mis qname="название_ноды_еще" />
        </test>
        </mis>
</mis>




то что должно получиться

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<название_ноды_1  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<name>
		<value>Зав. отделением</value>
	</name>
	<название_ноды_2>
		<name>
			<value>Данные осмотра</value>
		</name>
        <test>
           <название_ноды_еще  />
        </test>
        </название_ноды_2>
</название_ноды_1>
...
Рейтинг: 0 / 0
переименовать нужные ноды взяв название из атрибута
    #39429284
RulonOboev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
получилось нечто такое :
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />
<xsl:template match="node()">
  <xsl:copy>
    <xsl:apply-templates select="node()"/>
  </xsl:copy>
</xsl:template>
<xsl:template match="*[@qname]">
<xsl:element name="{@qname}">
      <xsl:apply-templates select="node()"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>



но есть проблема с namespace, лепит к каждой ноде xmlns если указан в корневой, что делаю не так ?
...
Рейтинг: 0 / 0
переименовать нужные ноды взяв название из атрибута
    #39429349
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: xml
1.
<xsl:element name="{@qname}" namespace="{namespace-uri(.)}">
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / переименовать нужные ноды взяв название из атрибута
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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