xmlhack.ru XML-форумы
Обсуждение XML и связанных с ним технологий

Помогите с xsl преобразованием(необязательный атрибут)


Автор Сообщение
Артём
Гость




[13816] Вс Июн 07, 2009 18:50
Помогите с xsl преобразованием(необязательный атрибут)
Возьмём часть xml-документа:
Выделить всёРазметка XML

<catalog>
<category id="1">Мобильные телефоны</category>
<category id="1026" parentID="1">Мобильные телефоны iPhone</category>
<category id="1042" parentID="1">Мобильные телефоны Б/У</category>
<category id="1055" parentID="1">Мобильные телефоны SerteC</category>
<category id="1001" parentID="1">Мобильные телефоны Motorola</category>
<category id="1002" parentID="1">Мобильные телефоны Nokia</category>
<category id="1003" parentID="1">Мобильные телефоны Samsung</category>
<category id="1004" parentID="1">Мобильные телефоны Sony Ericsson</category>
<category id="1027" parentID="1">Мобильные телефоны Alcatel</category>
<category id="1033" parentID="1">Мобильные телефоны Fly</category>
<category id="1034" parentID="1">Мобильные телефоны LG</category>
<category id="1021" parentID="1">Мобильные телефоны Sitronics</category>
...

Здесь видно, что атрибут parentID является необязательным атрибутом.

Вот так выглядит отрывок xsl для этого преобразования:

xsl:template match="catalog">
<Каталог>
<xsl:apply-templates/>
</Каталог>
</xsl:template>
<xsl:template match="category">
<Категория>
<ID>
<xsl:value-of select="@id"/>
</ID>
<xsl:value-of select="node()"/>
</Категория>
</xsl:template>


Как мне вписать необязательный атрибут?
Vasilisk
Наставник

Зарегистрирован: 17.05.2006
Сообщения: 370
Откуда: Украина, Харьков
[13821] Пн Июн 08, 2009 22:01

Код:

<xsl:if test="@parentID">
.........
</xsl:if>


_________________
С уважением Vasilisk
Уважайте читающих, используйте тэги [code ][/code]
Fireball
Наставник

Зарегистрирован: 26.02.2008
Сообщения: 282

[13873] Чт Июн 25, 2009 12:57

Если его к <ID> нужно приписать, то достаточно вот так после <ID> написать:
<xsl:apply-templates select="@parentId" />