powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Удаление пустых нодов с определенного уровня вложенности
4 сообщений из 4, страница 1 из 1
Удаление пустых нодов с определенного уровня вложенности
    #36892311
blackout
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Есть вопрос по XSL: нашел в инете XSL'ку, которая удаляет пустые ноды из XML:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output omit-xml-declaration="no" encoding="windows-1251" indent="no"/>
	<xsl:strip-space elements="*"/>
	<xsl:template match="*[not(node()) and not(./@*)]"/>
	<xsl:template match="@* | node()">
		<xsl:copy>
			<xsl:apply-templates select="@* | node()"/>
		</xsl:copy>
	</xsl:template>
</xsl:stylesheet>
Работает хорошо, удаляет. Но теперь возникла необходимость, чтобы удалялись только ноды начиная со второго уровня вложенности, т. е., к примеру:
Код: plaintext
<DataSet><SomeTable /></DataSet>
или
Код: plaintext
<DataSet />
должны оставаться, а все пустые ноды, что вложены в SomeTable, должны чиститься. Подскажите, как это сделать, пожалуйста.
...
Рейтинг: 0 / 0
Удаление пустых нодов с определенного уровня вложенности
    #36892393
blackout
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output omit-xml-declaration="no" encoding="windows-1251" indent="no"/>
	<xsl:strip-space elements="*"/>
	<xsl:template match="/*/*/*[not(node()) and not(./@*)]"/>
	<xsl:template match="@* | node()">
		<xsl:copy>
			<xsl:apply-templates select="@* | node()"/>
		</xsl:copy>
	</xsl:template>
</xsl:stylesheet>

ну так удаляются все пустые со второго уровня, а вот с третьего и т.д. - нет.
...
Рейтинг: 0 / 0
Удаление пустых нодов с определенного уровня вложенности
    #36892455
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а так?
Код: plaintext
1.
<xsl:template match="/*/*//*[not(node()) and not(./@*)]"/>
...
Рейтинг: 0 / 0
Удаление пустых нодов с определенного уровня вложенности
    #36892480
blackout
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
refreg , спасибо, работает.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Удаление пустых нодов с определенного уровня вложенности
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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