powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / xslt и xsl:nil
6 сообщений из 6, страница 1 из 1
xslt и xsl:nil
    #34422832
ura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подскажите пожалуйста, можно ли в пустые елементы в выходном XML как-то проще добавлять атрибут xsi:nil="true" ?
т.е. например, на входе:
Код: plaintext
<root></root>
применяем такой шаблон:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance ">
<xsl:output method="xml" encoding="windows-1251"/>
<xsl:template match="/">
<root>
<a><xsl:value-of select="text()"/></a>
</root>
</xsl:template>
</xsl:stylesheet>
на выходе получаем:
Код: plaintext
1.
2.
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<a />
</root>
а хотелось бы:
Код: plaintext
1.
2.
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<a xsi:nil="true"/>
</root>

можно конечно добавлять этот атрибут через <xsl:attribute> но это нужно делать для всего документа... и каждый раз городить if-ы или case-ы не хочется.... можно ли как-то это попроще решить ?
...
Рейтинг: 0 / 0
xslt и xsl:nil
    #34423324
SuSa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<xsl:template match="/">
<root>
<xsl:element name="a">
        <xsl:attribute name="xsi:nil">
<xsl:value-of select="text()"/>
</xsl:attribute>
</xsl:element>
</root>
</xsl:template>
токо

Код: plaintext
<a xsi:nil="true"/>
вот это ты врядли получешь (в смысле значение true) если ты вынимаешь текст
Если тебе конкретно надо это значение всунуть то так
Код: plaintext
1.
2.
3.
4.
<xsl:element name="a">
        <xsl:attribute name="xsi:nil">
                <xsl:text>true</xsl:text>
</xsl:attribute>
</xsl:element>
...
Рейтинг: 0 / 0
xslt и xsl:nil
    #34424625
SuSa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прости... :) последнюю строчку сообщения под кодом просто утром не увидел
но это нужно делать для всего документа..
Тогда посто пишешь: допустим выводишь свой документ никого не трогаешь :), стало надо вывести элемента <a> с атрибутом
вызываешь именнованный шаблон-> Где и происходит создание элемента и задание ему атрибута.
Т.о. вместо того чтоб плодить код, где нужен этот элемент, вставляешь вызов шаблона который это сделает.
...
Рейтинг: 0 / 0
xslt и xsl:nil
    #34424818
ura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SuSaТогда посто пишешь: допустим выводишь свой документ никого не трогаешь :), стало надо вывести элемента <a> с атрибутом
вызываешь именнованный шаблон-> Где и происходит создание элемента и задание ему атрибута.

Это мысль... Но, как я понимаю, xsi:nil="true" это какая-то стандартная фича.. в MS-SQL, например, есть специальная команда ELEMENTS XSINIL, которая автоматически добавляет этот атрибут в пустые элементы... нет ли чего-то подобного в XSL ?
...
Рейтинг: 0 / 0
xslt и xsl:nil
    #34424945
SuSa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторнет ли чего-то подобного в XSL ?
Незнаю. Скоко пишу на xsl еще не встречал, чтоб он сам помимо пространства имен чего то в левые (не родные= не прописанные по его структуре) теги запихивал.Тем более атрибуты с конкретным значением. причем он зачастую пихает ВСЕ пространства имен.
Наскоко я понял его логику, мыслит так:... если есть неизвестный тег, наверно он был описан в одном из объявленных во мне ns, напишука я их в него :).
И это лишь потому что в xsl позволено ns(простр. имен) объявлять либо в начале документа, либо в конкреном теге.

Хотя тут мысль посетила... может можно как то описать значение атрибута по умолчанию, и его подстановку в конкретный тег.
Как это сделать сходу не скажу.... можешь написать maXmo или TiG, они вроде сдесь лучше всех ориентируются во всех тонкостях xsl
...
Рейтинг: 0 / 0
xslt и xsl:nil
    #34427578
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если у тебя сложные обработки, то, видимо, придётся пропускать через повторное преобразование, которое будет втыкать нужные тебе атрибуты.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / xslt и xsl:nil
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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