Помогни ни да направим Uroci.net по - богат! Добави урок

Въведение в XML

Stalik   трудност:    видян: 297340



Обикновено се създава един стил, който да отговатя на всички елементи и в него се определят елементи, на които да бъдат прилагани други стилове. Това става чрез тага <xsl:apply-templates/>, който предизвиква прилагането на стила, съответстващ на дадения таг, вътре в дефиницията на друг стил. За да направим нещата по-ясни, отново ще разгледаме един пример. Нека изведем съдържанието на XML документ в таблица. Ще използвам следния XML документ:

Код:
<xml version="1.0">
<software>
<program>
<name>
<product version="4">Bryce</name>
<company>MetaCreations Corporation</company>
</name>
<type>
<category>graphics</category>
<subcategory>3D graphics and animation</subcategory>
</type>
<system>
<cpu>Pentium</cpu>
<ram>32MB</cpu>
</system>
</program>
<program>
<name>
<product version="4">Poser</name>
<company>MetaCreations Corporation</company>
</name>
<type>
<category>graphics</category>
<subcategory>character creation and animation</subcategory>
</type>
<system>
<cpu>Pentium</cpu>
<ram>32MB</cpu>
</system>
</program>
<program>
<name>
<product version="2003">Norton Antivirus</name>
<company>Symantec Corporation</company>
</name>
<type>
<category>security</category>
<subcategory>antivirus</subcategory>
</type>
<system>
<cpu>Pentium 133MHz</cpu>
<ram>32MB</cpu>
</system>
</program>
<program>
<name>
<product version="6">Delphi</name>
<company>Borland Corporation</version>
</name>
<type>
<category>development</category>
<subcategory>software development</subcategory>
</type>
<system>
<cpu>Pentium 166Mhz</cpu>
<ram>64MB</cpu>
</system>
</program>
</software>



Нашата задача е да изведем в таблица инфомацията на всяка от тези програми. Както виждаме, има три категории информация разделени в три тага, всеки от които има по два дъщерни тага. Сега нека разгледаме следния код

Код:
<?xml version="1.0"?>
<xsl:stylesheet>
<xsl:template match="/">
<HTML>
<BODY>
<TABLE BORDER="1">
<TR STYLE="font-weight:bold">
<TD>Program name</TD>
<TD>Producer</TD>
<TD>Category</TD>
<TD>Subcategiry</TD>
<TD>CPU requirements</TD>
<TD>RAM requirements</TD>
</TR>
<xsl:for-each select="software/program">
<TR>
<xsl:apply-templates/>
</TR>
</xsl:for-each>
</TABLE>
</BODY>
</HTML>
</xsl:template>

<xsl:template match="name">
<TD><xsl:value-of select="product"/></TD>
<TD><xsl:value-of select="company"/></TD>
</xsl:template>

<xsl:template match="type">
<TD><xsl:value-of select="category"/></TD>
<TD><xsl:value-of select="subcategory"/></TD>
</xsl:template>

<xsl:template match="system">
<TD><xsl:value-of select="cpu"/></TD>
<TD><xsl:value-of select="ram"/></TD>
</xsl:template>
</xsl:stylesheet>



Това, което прави този код, е да дефинира стил, приложен на цялостния документ (match="/"), в който да изгради заглавния ред на таблицата, след което да избере последователно всеки един таг , който е дъщерен на тага , да създаде нов ред и да приложи за него съответстващите стилове (т.е. за всеки един от неговите дъщерни тагове се прилага стилът, чиято стойност на атрибута match съвпада с името на тага). Самите стилове пък извлизат стойностите на дъщерните тагове и ги записват като елементи от таблицата. Обърнете внимание на използването на <xsl:foreach select> вместо <xsl:repeat for>
 
 
Сортиране

Таговете <xsl:for-each> и <xsl:apply-templates> поддържат атрибута order-by, който определя начина на сортиране на елементите. Като стойности му се задава дъщерния таг, по чиято стойност да сортира, предхождат от един от двата символа + или -, които определят съответно възходящ или низходящ ред.

Двуга възможност на XSLе проверявате стойностите на таговете. Това ви дава възможността да създадете различни стилове за един и същи таг в зависимост от текста, който той съдържа. Ако се върнем на предишния пример, можем да използваме различни стилове за графичния и защитния софтуер. Например можете да използвате следния таг: При проверкаат може да използва следните символи = за равно != за неравно <& за по-малко (тъй като символа < има специално значение - указва началото на таг) >& за по-голямо
 


Страници: «2 3 4 5 6 »

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com