powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / xsl: Отобрать непустые тэги
6 сообщений из 6, страница 1 из 1
xsl: Отобрать непустые тэги
    #36431108
npl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
npl
Гость
Можно ли с помощью XSL преобразовать любой многоуровневый XML в одноуровневый, отобрав только непустые тэги. При этом не указывая конкретные именя тэгов - чтобы работало для любого xml.

То есть например

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<Objects>
  <Object type = "Hotel">
     <Address>
        <StreetName>Name_of_sreet</StreetName>
        <House_Num> 100 </House_Num>
     </Address>
  </Object>
</Objects>

на выходе получить:

Код: plaintext
1.
2.
3.
  <Object type = "Hotel"/>
  <StreetName>Name_of_sreet</StreetName>
  <House_Num> 100 </House_Num>
...
Рейтинг: 0 / 0
xsl: Отобрать непустые тэги
    #36431592
Иванофф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://www.stylusstudio.com/xsllist/200401/post50240.html
...
Рейтинг: 0 / 0
xsl: Отобрать непустые тэги
    #36432474
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nplна выходе получить:

Код: plaintext
1.
2.
3.
  <Object type = "Hotel"/>
  <StreetName>Name_of_sreet</StreetName>
  <House_Num> 100 </House_Num>
Это не XML документ. Вы отдаете себе в этом отчет?
...
Рейтинг: 0 / 0
xsl: Отобрать непустые тэги
    #36432487
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если не смущает, то вот код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<?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" omit-xml-declaration="yes"/>

  <xsl:template match="*[text()] | *[@*]">
    <xsl:element name="{name()}">
      <xsl:apply-templates select="@*"/>
      <xsl:value-of select="text()"/>
    </xsl:element>
    <xsl:apply-templates select="*"/>
  </xsl:template>

  <xsl:template match="@*">
    <xsl:attribute name="{name()}">
      <xsl:value-of select="."/>
    </xsl:attribute>
  </xsl:template>
</xsl:stylesheet>

С уважением, Vasilisk
...
Рейтинг: 0 / 0
xsl: Отобрать непустые тэги
    #36433198
npl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
npl
Гость
_Vasilisk_ , спасибо!
конечно же хотелось бы сохранить внешние тэги)
Код: plaintext
1.
2.
3.
4.
<Objects>
  <Object type = "Hotel"/>
  <StreetName>Name_of_sreet</StreetName>
  <House_Num> 100 </House_Num>
</Objects>
...
Рейтинг: 0 / 0
xsl: Отобрать непустые тэги
    #36434911
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну добавьте еще шаблон
Код: plaintext
1.
2.
3.
4.
<xsl:templates match="/">
  <Objects>
    <xsl:apply-templates/>
  </Objects>
</xsl:templates>

С уважением, Vasilisk
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / xsl: Отобрать непустые тэги
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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