2008 13 august 2008

Tokenizing şir delimitat în interiorul unei XSL

În cazul în care cerinţa este să împartă o valoare într-un nod XML, care conţine un şir delimitat de valoare, în elementele individuale, atunci aţi ajuns la locul potrivit ... avea o privire de la exemplul de mai jos. Dacă sunteţi familiarizat cu un pic de XML si XSL ... eu nu cred ca ar fi nevoie de nici o explicaţie.
De asemenea, acest exemplu de utilizare a include functii cum ar fi XSL xsl: call-şablon, XSL: subşir-înainte, XSL: subşir-după, în cazul în care este ceea ce sunt după.

XML pentru a fi transformate (food.xml): -
Presupunem sarcină este de a tokenize delimitat de coarde de virgulă, în tag-ul "Cuvinte cheie"

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

De ieşire HTML rezultat: -

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

Inutil să spun ... schimba doar parametrul "delimitr" la delimitatorul de alegerea dvs.


2008 11 august 2008

Download Faux Aflat Format WordPress

Dacă sunteţi unul dintre cei (ca mine), care verifica deseori CSS a paginii HTML bine făcute, pentru a obţine inspirat sau orice altceva, atunci este posibil să fi observat că am folosit Pozitionare Faux (aşa cum sa menţionat deja în articolul meu de mai devreme Suntem Poziţionarea cu ajutorul Faux absolută: Un Briliant Aspect CSC )

Noi am ceva de lucru bun pe acest şablon, deci gandit ca ar fi frumos să-l împărtăşească .... Descarcă această temă WordPress (descărcat de 196 ori)


2008 07 august 2008

ANIMOTO: foarte frumos "User Interface Rich", fără flash!

Aţi văzut animoto.com? Ei bine! acest lucru nu este un anunţ, mi-a placut! şi este într-adevăr, Saruta UI ASS

Am venit pe acest site cu câteva săptămâni în urmă. A văzut prima pagină, pe baza caracterului deranjează mult. Pentru mine, a fost doar un alt site, cu un conţinut bogat Flash, permiţând utilizatorilor să încarce imagini, alege unele pistă şi transforma-l intr-un slideshow imagine frumos. Descarca FLV, şi a pus-o pe orice site-ul de alegere (YouTube, MetaCafe, Facebook şi îi place) ... PERIOADA.

Ieri, când am văzut în paginile interne de debit, care a avut de utilizator, prin crearea de această prezentare .... M-am dus OH WOW! Când am dat seama că nu era pic de FLASH utilizat. A fost într-adevăr, o interfaţă utilizator Rich. Toate dezvoltatorii UI trebuie să aspire să creeze sau cel puţin să fie o parte din echipa care a făcut această interfaţă .... Absolut genial! Şi inspiraţie!

Arunca o privire ... http://animoto.com/ ... şi să înregistreze şi să se joace cu el ... doar atunci poti aprecia geniul.


2008 04 august 2008

O problemă cu poziţia (), în XSL ... sau este?

Am avut această problemă Stocare în timp ce crearea unui XSL astăzi. Căutat răspunsuri în întreaga net, dar putut găsi orice .... De fapt, am ghicit! Eu ştiu ce însemna problema mea a fost, asa cum nu ma uit pentru?

Oricum! Doar în cazul în care aveţi această problemă foarte aceeaşi şi oarecum prea de puterea de a te obliga sa a reuşit să aterizeze pe această pagină ... vă mulţumesc să-mi tone ... Şi dacă aţi aterizat accidental de pe aceasta pagina pentru unele soarta ciudat şi se întâmplă să fie un dezvoltator XSL, a face a face o notă de acest lucru acum, pentru cauza viitor, dacă într-o zi, te confrunţi cu această problemă, atunci forţa nu s-ar putea să fie cu voi.

Problemă declaraţie:
Am acest XML, în cazul în care există două noduri cu mai multe elemente în ea, precum şi articole între aceste două noduri au o corespondenţă unu la unu. În exemplul de mai jos, fiecare element în nodul <array name="PLAYURL" /> se referă (poziţia corespunzătoare), la un element în <array nodul 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>

Acum, am o buclă, în cazul în care am bucla prin <array name="SITENAME">, şi vreau să ajung elementul aferent (de la poziţia corespunzătoare), în <array name="PLAYURL">,

Ce v-ar încerca normaly face este ...

<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! ACEST LUCRU obiceiul ... Ah!! Surpised ...

Acum, ce-ar vrea, probabil, pentru a încerca, ceva de genul asta ...

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

Şi din nou această obiceiul de lucru ... Acum te lamureste, incercand sa contacteze toti cei care credeţi că ştie ceva XSL si ar putea fi de nici un ajutor ... să încercaţi orice altă opţiune ... şi încă mai este obiceiul de lucru ... Ei bine! Asta e ceea ce mi sa întâmplat atleast ...

Dont Disperare! TRY ACEST

<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 Intreaba-ma de ce functioneaza. Cauza i dont au un motiv drept ... daca faci! Vă rugăm să nu fixaţi un comentariu. Ar putea fi destul de util. De asemenea! dacă aveţi TITLUL mai bine pentru acest post, scrie-mi fac o linie de :)


2008 02 august 2008

Setarea DOCTYPE în XSL

Saptamana trecuta am creat o progresivă HTML / CSS layout-ul pentru un client, am testat-o ​​în IE6, IE7 si FF 3, părea perfect bine ... până când! aspect a mers mai departe în jos ciclu manufacting. Acesta nu a reuşit. Elemente de aspect de pagină, doar a plecat peste tot loc atunci când structura HTML a fost transformată în XSL si XML aplicate pentru a se ... Bummer!

Nu a putut dormi bine peste week-end, în anticiparea de luni dimineaţă, atunci când voi avea pentru a remedia această SH **. Dar, având acum o Experienta puţin în a face cu aceste tipuri de situaţii (quirks Browser, vreau să spun), am stiut ca a avut de a face cu nimic altceva, dar DOCTYPE .... şi a fost ...

Problemă:
Vrei controlul asupra DOCTYPE, deoarece transformarea va include un DOCTYPE implicit în mod explicit, şi veţi aspect va fi în afara pentru o aruncare.

Soluţie:
XSLT Specificatii oferă metode de ieşire pentru a seta un DOCTYPE de alegere. De asemenea, pentru noi, dezvoltatorii UI, subiectele de interes ar fi metodele de ieşire HTML şi XML metodele de ieşire .

Ei bine! înainte de a te-ai plictisit, aici este fix.

De exemplu, dacă aţi avut următoarea DOCTYPE în versiunea HTML:. -

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

Apoi, în XSL va trebui să aibă următoarele: -

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

şi, în sfârşit! asiguraţi-vă că nu de ieşire XSLT se supune DOCTYPE-aţi ales.


NDK acasă | Exprimarea IT | Gust Exprimarea | Penmenship Exprimarea | Awe Exprimarea | a mă exprima