powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как удалить атибуты и теги?
2 сообщений из 2, страница 1 из 1
Как удалить атибуты и теги?
    #40137284
eliasum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Входной файл XML:
Код: xml
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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
<conf title="co" attr01="val01">
  <c attr02="val02">
    <Item key="db" attr03="val03">
	<m1 />
	  <s attr04="val04">
		<m2 attr04="val04"/>
		<Item key="1" attr05="val05">
		  <m3 />
		  <sp>
			<Chart>
				<Widget title="widget12">
					<Test title="test1" />
				</Widget>
			</Chart>
		  </sp>
		</Item>
		<m4 />
		<Item key="2">
		  <sp attr05="val06">
			<m5 />
			<Chart>
				<Widget title="widget32">
					<Test title="test3" />
				</Widget>
			</Chart>
		  </sp>
		</Item>
		<Item key="3" attr06="val07">
		  <sp>
			<Chart>
				<Widget title="widget54">
					<Test title="test6" />
				</Widget>
			</Chart>
		  </sp>
		</Item>
		<m6 attr07="val07" />
	  </s>
    </Item>
  </c>
</conf>



Как удалить все теги, которые не являются родительскими для тега Chart, а так же убрать все атрибуты, кроме key, у всех тегов, кроме корневого и тех, которые являются потомками тега Chart, чтобы после трансформации XSLT файл выглядел так?
Код: xml
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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
<p title="profile">
  <c>
    <Item key="db">
	  <s>
		<Item key="1">
		  <sp>
			<Chart>
				<Widget title="widget12">
					<Test title="test1"/>
				</Widget>
			</Chart>
		  </sp>
		</Item>
		<Item key="2">
		  <sp>
			<Chart>
				<Widget title="widget32">
					<Test title="test3"/>
				</Widget>
			</Chart>
		  </sp>
		</Item>
		<Item key="3">
		  <sp>
			<Chart>
				<Widget title="widget54">
					<Test title="test6"/>
				</Widget>
			</Chart>
		  </sp>
		</Item>
	  </s>
    </Item>
  </c>
</p>



В выходном файле происходит замена тега conf на тег p с атрибутом title="profile"
...
Рейтинг: 0 / 0
Как удалить атибуты и теги?
    #40137293
eliasum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: xml
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.
27.
<?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" indent="yes" omit-xml-declaration="yes"/>
  
    <!--Identity template-->
  <xsl:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>

	<!--Замена узлов 'conf' на 'p'-->
	<xsl:template match="conf">
		<p>
			<xsl:apply-templates select="@*|node()"/>
		</p>
	</xsl:template>
  
<xsl:template match="*">
    <xsl:copy>
        <xsl:copy-of select="@title"/>
        <xsl:apply-templates/>
    </xsl:copy>
</xsl:template>

</xsl:stylesheet>
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как удалить атибуты и теги?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (1): Анонимы (1)
Пользователи онлайн (12): Анонимы (9), Bing Bot, Yandex Bot 1 мин., CerebroSQL 1 мин.
x
x
Закрыть


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