2008 August 13 2008

Tokenizing oddeľovačmi reťazec vnútri XSL

Ak vašu požiadavku rozdeliť uzla hodnotu vo formáte XML, ktorý obsahuje reťazec oddelený hodnoty, do jednotlivých položiek, potom ste na správne miesto ... pozrite sa na nižšie uvedenom príklade. Ak ste oboznámení s trochou XML a XSL ... Nemyslím si, že budete potrebovať nejaké vysvetlenie.
Aj tento príklad zahrňuje použitie funkcií ako je XSL xsl: call-template, xsl: substring-before, xsl: substring-after, či to, čo ste po ňom.

XML, ktoré sa spracovávajú (food.xml): -
Predpokladajme, že úlohou je tokenize reťazec oddelený čiarkou, v na "kľúčových slov" tagov

<?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>

XSL (food.xsl): -

<?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>

Výsledná výstup HTML: -

<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>

Netreba dodávať, že ... stačí zmeniť parameter "delimitr" na oddeľovač podľa vlastného výberu


2008 11.08.2008

Stiahnite si toto Faux umiestnený WordPress šablóny

Ak ste jeden z tých chalanov (ako ja), ktorí často kontrolovať CSS dobre vykonanej stránky HTML sa inšpirovať, alebo čo, a potom ste si možno všimli, že sme použili Faux polohy (ako už bolo povedané v mojom skoršom článku sme faux pomocou absolútnej polohy: Brilantná CCS Layout )

Urobili sme dobrú prácu na tejto šablóne, takže si myslel, že by pekné zdieľať .... Stiahnite si túto tému WordPress (stiahnuté 195 krát)


2008 7. augusta 2008

ANIMOTO: Naozaj Nice "bohaté užívateľské rozhranie" bez blesku!

Videli ste animoto.com? No! to nie je AD, naozaj sa to páčilo! a to je bozk ASS UI naozaj

Narazil som na tomto mieste pred niekoľkými týždňami. Videl som prvú stránku, dint obťažovať moc. Pre mňa to bol len ďalší miesto s nejakým bohatým obsahom Flash, ktorý umožňuje používateľom vkladať obrázky, vyberte nejakú stopu a zmeniť to na pekný obrázok slideshow. Stiahnuť FLV, a dať to na akomkoľvek mieste vášho výberu (YouTube, Metacafe, Facebook a rád) ... OBDOBIE.

Včera, keď som videl, vnútorný tok stránky, ktoré mala na užívateľa cez vytvorenie tejto prezentácie .... Išiel som OH WOW! Keď som si uvedomil, že tam nebolo trochu FLASH použiť. To bolo naozaj bohaté užívateľské rozhranie. Všetky používateľské rozhranie vývojári musí sa snažiť vytvoriť alebo aspoň byť súčasťou tímu, ktorý urobil toto rozhranie .... Úplne geniálne! A inšpirujúce!

POZRITE SA ... http://animoto.com/ ~ ~ HEAD = dobj ... a zaregistrujte sa a hrať sa s ním ... až potom môžete oceniť genialitu.


2008 Augusta 4. 2008

Problém s umiestnením () v XSL ... alebo je to?

Mal som tento problém strage pri vytváraní XSL dnes. Hľadali odpovede na celom internete, ale couldnt nájsť žiadne .... Vlastne myslím, že! Ja viem, čo dint môj problém bol, tak čo mám hľadať?

Každopádne! Len v prípade, že máte tento istý problém taky a nejako o moc síl sa vám podarilo pristáť na tejto stránke ... ďakujem by ste mi veľa ... A ak ste náhodou pristál na tejto stránke nejakú podivnú osudom a sa stalo, že developer XSL, DO MAKE A túto skutočnosť na vedomie TERAZ do budúcna príčiny, ak je nejaký deň, budete čeliť tomuto problému, potom sila nemusí byť s vami.

Problém vyhlásenie:
Mám tento XML, kde sú dva uzly s viac položiek v ňom a tovaru medzi týmito dvoma uzlami majú jeden na jedného korešpondenciu. V nižšie uvedenom príklade, každá položka v uzle <array name="PLAYURL" /> týka (zodpovedajúcej pozície) na položku v uzle <array name="SITENAME" />

<?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>

Teraz mám slučku, kde aj cez slučku <array name="SITENAME">, a chcem sa dostať súvisiace položky (na zodpovedajúcu pozíciu) v <array name="PLAYURL">,

Čo by ste normálne snažiť urobiť, je ...

<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>

SORRY! TENTO zvyknutý fungovať ... Ach! Surpised ...

Teraz by ste asi chceli vyskúšať, niečo také ...

<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>

A opäť to zvyknutý pracovať ... Teraz ste poškriabaniu vašej hlave, snaží sa obrátiť každý, kto si myslíte, že pozná nejaký XSL a mohla by byť žiadny zmysel ... pokusu každú inú možnosť ... a ešte to nebude fungovať ... No! To je čo sa mi stalo aspon ...

Dont Zúfalstvo! Skúste to

<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>

Dont Spýtaj sa ma prečo to funguje. Príčina i dont mať správny dôvod ... ak nechcete! Prosím, Drop komentár. To by mohlo byť celkom užitočné. Tiež! Ak máte lepší názov pre tento post, to ma vysadil riadku :)


2008 August 2008 2

Nastavenie DOCTYPE v XSL

Minulý týždeň som vytvoril Progessive HTML / CSS layout pre klienta, skúša to v IE6, IE7 a FF 3, vyzeral úplne v poriadku ... až! Rozloženie šiel ďalej po manufacting cyklu. To sa nepodarilo. Prvky rozloženie stránky len chodil všade, kedy bolo rozloženie HTML prevedené do XML a XSL pre neho použitá ... trapas!

Nemohol spať v poriadku cez víkend, v očakávaní pondelňajšieho rána, kedy budem musieť opraviť tento SH **. Ale teraz tak trochu zažiť pri riešení týchto situácií (druh prehliadača vtipy, mám na mysli), vedel som, že to musel urobiť s ničím iným, ale DOCTYPE .... a bolo to ...

Problém:
Chcete, aby kontrolu nad DOCTYPE, pretože vaše transformácie bude obsahovať predvolené DOCTYPE explicitne, a vy rozloženie bude pozor na žreb.

Riešenie:
XSLT špecifikácia poskytuje výstupné metódy nastaviť na DOCTYPE z výberom. Aj pre nás vývojári užívateľského rozhrania by tém záujmu je HTML výstup metódy a XML výstupné metódy .

No! Pred nudiť, tu je oprava.

Napr. Za, ak by ste mali nasledujúce DOCTYPE v HTML verzii:. -

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Potom v XSL by ste mať nasledujúce: -

<xsl:output method="html" doctype-system="http://www.w3.org/TR/html4/loose.dtd" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" indent="yes" />

a konečne! sa uistite, že XSLT výstup počúva DOCTYPE ste si vybrali.


NDK domov | Vyjadrenie IT | Vyjadrenie poschodia | Vyjadrenie Penmenship | Vyjadrenie Awe | Vyjadrenie Myself