2008 Оцт 13 2008

Токенизинг одредјену низа унутар КССЛ

Ако је ваш захтев је да подели чвор вредност у КСМЛ, који садржи одредјену низ вредности, у појединим ставкама, онда сте стигли на право место ... имају поглед на следећем примеру. Ако сте упознати са мало КСМЛ и КССЛ ... Ја не мислим да би било потребно никакво објашњење.
Такође, овај пример укључује коришћење КССЛ функција као што су: Цалл КССЛ-предлошка, КССЛ: субстринг-пре, КССЛ: субстринг-после, ако је то оно што сте после.

КСМЛ да се трансформишу (фоод.кмл): -
Претпоставимо да је задатак токенизе раздвојен зарезом ниске, у овим тагом "кључних речи"

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="food.xsl"?>
<food>
<date>July 2008</date>
<description>All about things we eat everyday</description>
<keywords>Fruits, Vegetables, Pulses, Meat, Cereals </keywords>
</food>

КССЛ (фоод.ксл): -

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="utf-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>XSL 1.0 Delimited String Tokeniser</title>
</head>
<body>
<xsl:value-of select="food/meta"/>
<div >
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="food/keywords" />
<xsl:with-param name="delimitr" select="','" />
</xsl:call-template>

</div>
</body>
</html>
</xsl:template>
<xsl:template name="tokenize">
<xsl:param name="string" />
<xsl:param name="delimitr" />
<xsl:choose>
<xsl:when test="contains($string, $delimitr)">
<div style="border:1px solid red;">
<h3><xsl:value-of select="substring-before($string,$delimitr)" /></h3>
<xsl:variable name="data" select="substring-before($string,$delimitr)"/>
</div>
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="substring-after($string, $delimitr)" /><xsl:with-param name="delimitr" select="$delimitr" /></xsl:call-template>
</xsl:when>
<xsl:otherwise>
<div style="border:1px solid red;">
<h3><xsl:value-of select="$string" /></h3>
</div>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

Резултанта излаз ХТМЛ је: -

<div>
<div style="border: 1px solid red;">
<h3>Fruits</h3>
</div>
<div style="border: 1px solid red;">
<h3> Vegetables</h3>
</div>
<div style="border: 1px solid red;">
<h3> Pulses</h3>
</div>
<div style="border: 1px solid red;">
<h3> Meat</h3>
</div>
<div style="border: 1px solid red;">
<h3> Cereals </h3>
</div>
</div>

Непотребно је рећи ... само промените параметар "делимитр" на раздвајање по вашем избору


2008 Ауг 4 2008

Проблем са позиције () у КССЛ ... или је то?

Имао сам овај проблем, док страге стварање КССЛ данас. Тражили одговоре широм мреже, али цоулднт наћи било .... Заправо мислим! Ја напор знам шта је мој проблем, па шта тражим?

У сваком случају! Само у случају да имате тај исти проблем и некако превише стране моћи силе успео да слети вам на овој страници ... да би ми се захвалим тона ... А ако сте случајно дошли на овој страници из неког чудног судбином и да се деси да буде КССЛ програмер, ДО САДА НЕ ДАЈУ белешку о томе, за будући узрока, ако једног дана, да се суочи са овим питањем, онда сила не може бити са вама.

Проблем изјава:
Имам овај КСМЛ, где постоје два чворишта са више ставки у њему и ствари између ова два чвора имају један на један преписку. У следећем примеру, свака ставка у цвора <арраи наме="ПЛАИУРЛ" /> односи (одговара позиција) на ставку у цвора <арраи наме="СИТЕНАМЕ" />

<?xml version="1.0" encoding="utf-8"?>
<myplaylists>
<playlist>
<title>Best of Rest </title>
<array name="SITENAME">
<str>www.musicindiaonline.com</str>
<str>www.dhingana.com</str>
<str>www.raaga.com</str>
<str>www.smashits.com</str>
<str>www.desimusic.com</str>
<str>www.musicplug.in</str>
</array>
<array name="PLAYURL">
<str>http://www.musicindiaonline.com/123/</str>
<str>http://www.dhingana.com/play/123</str>
<str>http://www.raaga.com/123</str>
<str>http://ww.smashits.com/123</str>
<str>http://www.desimusic.com/123</str>
<str>http://www.musicplug.in/123</str>
</array>
</playlist>
</myplaylists>

Сада, имам петљу, где сам петља кроз <арраи наме="СИТЕНАМЕ">, и желим да се повезани објекат (на одговарајућу позицију) у <арраи наме="ПЛАИУРЛ">,

Шта вам је нормално да ће покушати да урадите је ...

<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
play from : <a href="{../../array[@name='PLAY']/str[position()]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>

СОРРИ! ОВО Вонт рад ... Ах! Сурписед ...

Сада сте вероватно желети да испробате, овако нешто ...

<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos"> <xsl:value-of select="position()"/></xsl:variable>
play from : <a href="{../../array[@name='PLAY']/str[$pos]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>

И опет то неце радити ... Сада сте гребање главу, покушавајући да контактирате свакога ко мислите да зна неке КССЛ и може бити од помоћи ... било покушате сваку другу опцију ... и даље то неће радити ... Па! То је оно што ми се десило атлеаст ...

Донт Очај! ПОКУШАЈ ОВО

<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos-int" select="position()" />
play from : <a href="{../../array[@name='PLAY']/str[$
<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos-int" select="position()" />
play from : <a href="{../../array[@name='PLAY']/str[$ pos-int ]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>
]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>

ДОНТ АСК МЕ ЗАСТО ради. Узрок ја донт имати прави разлог ... ако то урадите! Молимо вас да пустите коментар. То може бити прилично корисно. Такође! ако имате бољи наслов за овај пост, то дроп ме линије :)


2008 4. мај 2008

Укључи КССЛ унутар КССЛ

Ако КСМЛ / КССЛ трансформација је ваш домиан, онда постоје тренуци када желимо пеице динамичког кода који ће се користити библиотеку ставку (да се поново употребљив). Шта хоћу да кажем, вероватно се може учинити са овом примеру јасно сценарио.

Замислите да креирате сајт (и коришћењем КСМЛ, КССЛ трансфромс наравно) и већина страна имати Коментари модул. Добро! онда или копирате или налепите овај код на свакој страници шаблона (што да не немам реци, али се одржавање и дорада ноћну мору) или, још боље, направите УКЉУЧИТИ фајл који би могао да се повуче у где год ви то желите на вашој страници ( е) ...
Дакле, како ћемо направити КССЛ УКЉУЧИТИ фајл и укључује га у другој КССЛ фајл? Ево како ...

Само да се ствари јасно ... овде је брз списак датотека које би сте креирали ... овде, ми ћемо бити укључујући информације о воћа и поврћа у матичној страни се зове храна.

1. фоод.кмл - КСМЛ датотека са подацима на којима ће трансформација бити примењена
2. фоод.ксл - главни КССЛ фајл, који ће трансформисати наше фоод.кмл
3. инц_фруитс.ксл - КССЛ фајл који укључују пружаће воћа податке
4. инц_вегтаблес.ксл - КССЛ фајл који укључују пружаће вететаблес податке

И донт мислим да имам много објасним, кодови за наведене елементе, биће само објашњења ...

ФООД.КСМЛ


<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="food.xsl"?>
<food>
<date>July 2008</date>
<description>All about things we eat everyday</description>
<fruits type="tropical">
<item name="mango" moreinfo="http://www.mango.com">Mango is the king of fruits</item>
<item name="banana" moreinfo="http://www.banana.com">Banana once a day , keeps the doctor away</item>
<item name="orange" moreinfo="http://www.orange.com">Orange is the color and rich in vitamin C</item>
<item name="Papaya" moreinfo="http://www.papaya.com">Papaya - Hot when raw, cold when ripe</item>
</fruits>

<vegetables>
<item name="spinach" moreinfo="http://www.spinach.com">Spinach is full of iron</item>
<item name="asparagus" moreinfo="http://www.asparagus.com">Asparagus contains loads of vitamin D </item>
<item name="fenugreek" moreinfo="http://www.fenugreek.com">Fenugreek is rich in vitamin C</item>
</vegetables>
</food>


ФООД.КССЛ


<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="inc_fruits.xsl" />
<xsl:include href="inc_vegetables.xsl" />
<xsl:template match="/">
<html>
<head>
<title>Title</title>
</head>
<body>
<h3><xsl:value-of select="/food/description" /></h3>
Modification Date : <xsl:value-of select="/food/date" />
<hr/>
<h5> About Fruits</h5>
<xsl:call-template name="about_fruits"/>

<hr/>
<h5> About Vegetables</h5>
<xsl:call-template name="about_vegetables"/>

<хр/>
</ БОДИ>
</ Хтмл>
</ Кссл: темплате>
</ КССЛ: стиловима>


ИНЦ_ФРУИТС.КССЛ

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="iso-8859-1" />
<xsl:template name="about_fruits">
<xsl:for-each select="/food/fruits/item/@*">
attribute name : <xsl:value-of select="name()"/>
attribute value : <xsl:value-of select="."/> <br />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>


ИНЦ_ВЕГЕТАБЛЕС.КССЛ

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="iso-8859-1" />
<xsl:template name="about_vegetables">
<xsl:for-each select="/food/vegetables/item/@*">
attribute name : <xsl:value-of select="name()"/>
attribute value : <xsl:value-of select="."/> <br/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

Преузмите све горе наведене фајлове овде (253 Довнлоадс)


2008 Јан 4 2008

Рад са КСМЛ чвор атрибута у КССЛТ

Ако користите КСМЛ и КССЛ, онда сте можда наишли на време, када морате да играте са атрибутима и вредностима КСМЛ чворова у вама КССЛ-а. Они су гомила сајтова са дугог даха информација о овоме, али ни сам нашао биле су кратке и јасне ... ово није КСМЛ / КССЛ туториал, али мој покушај да се стави-заједно неку врсту варања листи ...

Узорак КСМЛ да ћемо рад са изгледа овако ...

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="food.xsl"?>
<food>
<fruits type="tropical">
<item name="mango" moreinfo="http://www.mango.com">Mango is the king of fruits</item>
<item name="banana" moreinfo="http://www.banana.com">Banana once a day , keeps the doctor away</item>
<item name="orange" moreinfo="http://www.orange.com">Orange is the color and rich in vitamin C</item>
<item name="Papaya" moreinfo="http://www.papaya.com">Papaya - Hot when raw, cold when ripe</item>
</fruits>
</food>

Дакле Летс почети трансформацију наше горе КСМЛ помоћу КССЛ

Пример 1: Приказујем вредност на изабрани атрибута

<xsl:value-of select="/food/fruits/item[@name='orange']" /><br />
to get more information about <a href="{/food/fruits/item[@name='orange']/@moreinfo}" target="new" ><xsl:value-of select="/food/fruits/item[@name='orange']/@name" /> </a>

ХТМЛ резултат ће изгледати

Orange is the color and rich in vitamin C,
to get more information about <a href="http://www.orange.com" target="new">


Пример 2: лоопинг кроз приказивање и све КСМЛ атрибут Имена и њихове вредности

<xsl:for-each select="/food/fruits/item/@*">
attribute name : <xsl:value-of select="name()"/>,
attribute value : <xsl:value-of select="."/> <br />
</xsl:for-each>

ХТМЛ резултат ће изгледати


attribute name : name, attribute value : mango
attribute name : moreinfo, attribute value : http://www.mango.com
attribute name : name, attribute value : banana
attribute name : moreinfo, attribute value : http://www.banana.com
attribute name : name, attribute value : orange
attribute name : moreinfo, attribute value : http://www.orange.com
attribute name : name, attribute value : Papaya
attribute name : moreinfo, attribute value : http://www.papaya.com


Преузмите све горе наведене фајлове овде (245 Довнлоадс)



Погледајте овај простор, ја ћу ажурирати овај са новим сазнањима ...


НДК Почетна | Изражавајући ИТ | Изражавајући Палате | Изражавајући Пенменсхип | Изражавајући страхопоштовање | Изражавајући Ја