2008 Avgust 13 2008

Tokenizing razmeji String notranjosti XSL

Če je vaša zahteva je, da razdeli vozlišča vrednosti v XML, ki vsebuje omejenem niz vrednosti, v posameznih postavk, potem ste dosegli pravo mesto ... si oglejte v spodnjem primeru. Če ste seznanjeni z malo XML in XSL ... Ne verjamem, da bi potrebovali nobenega pojasnila.
Tudi ta primer vključuje uporabo funkcij, kot so XSL xsl: call-template, xsl: podniz-pred, xsl: podniz-ko, če je to tisto, kar ste po.

XML je treba spremeniti (food.xml): -
Predpostavimo naloga je, da tokenize niz razmejene z vejico, na etiketo, "ključne besede"

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

Dobljena moč 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>

Ni treba posebej poudarjati ... le spremeniti parameter "delimitr" na ločilo po vaši izbiri


2008 11. avgust 2008

Prenesi to faux postavljen Predloga WordPress

Če ste eden tistih (kot jaz), ki pogosto preverite CSS za dobro narejena stran HTML, da bi dobili navdih ali karkoli, potem ste morda opazili, da smo uporabili faux položaja (kot že omenjeno v moji prejšnji članku smo z faux Absolutno pozicioniranje: Brilliant CCS Postavitev )

Nismo nekaj dobro delo na te predloge, zato mislil, da bi lepo, da ga delite .... Prenesi to temo WordPress (preneseno 196 krat)


2008 Avgust 2008 7

Animoto: Res Nice "Rich User Interface" brez bliskavice!

Ste videli animoto.com? No! to ni AD, res mi je bilo všeč! in je poljub ASS vmesnik zares

Sem prišel čez to mesto pred nekaj tedni. Videl prvo stran, Trud moti veliko. Zame je bila samo še ena stran z nekaj bogate vsebine Flash, ki omogoča uporabnikom nalaganje slik, izberite nekaj sledi in se preoblikoval v lepo diaprojekcijo slik. Download FLV, in ga na vsakem mestu po vaši izbiri (YouTube, Metacafe, Facebook in podobno) ... obdobje.

Včeraj, ko sem videl potekom notranje strani, ki so se uporabnik z ustvarjanjem te diaprojekcije .... Šel sem OH WOW! Ko sem spoznal, da ni bilo malo FLASH uporabiti. Bilo je res bogat uporabniški vmesnik. Vsi razvijalci morajo UI si prizadevajo ustvariti ali vsaj del ekipe, ki je opravil ta vmesnik .... Absolutno briljantno! In navdihujoča!

Oglejte ... http://animoto.com/~~HEAD=dobj ... in se registrirati in igrati z njim ... šele potem lahko cenili genij.


2008 Avgust 2008 4

Problem s položaja () v XSL ... ali je to?

Sem imel to težavo strage med ustvarjanjem XSL danes. Iskali odgovore v celotni mreži, vendar strjena najdete vse .... Pravzaprav mislim! Trud sem vedel, kaj je moj problem, tako da kaj iščem?

Kakorkoli že! Samo v primeru, da so to zelo isti problem preveč in nekako z močjo delovne vam je uspelo pristati na tej strani, ..., ki bi se zahvalil mi ton ... In, če ste po nesreči pristal na tej strani nekaj čudno usodo in se zgodi, da razvijalec XSL, DO si zapišite to zdaj, v prihodnje vzrok, če nekega dne, si obraz s tem vprašanjem, potem FORCE morda ne bo z vami.

Problem izjava:
Imam XML, kjer sta dva vozlišča z več postavk v njem in predmeti med tema dvema vozlišč imajo eno na eno korespondenco. V spodnjem primeru je vsak element v vozlišču <array name="PLAYURL" /> nanaša (ustrezni položaj) na postavko, na vozlišču <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>

Zdaj imam zanko, kjer sem zanka skozi <array name="SITENAME">, in želim, da bi dobili ustrezen element (na ustreznem položaju) v <array name="PLAYURL">,

Kaj bi normalno poskusil storiti, 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>

Žal!! TA Navada DELO ... Ah!! Surpised ...

Zdaj bi si verjetno želeli, da preizkusite, kaj takega ...

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

In spet ta navada delati ... Zdaj si praskal glavo, poskuša stopiti v stik vsem, ki mislite, da ve nekaj XSL in bi lahko katero koli pomoč ... poskusite vse druge možnosti ... in še vedno navada, da deluje ... No! To kar se mi je zgodilo atleast ...

Dont Obup! Try This

<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 Vprašaj me zakaj to deluje. Vzrok i dont imajo pravico razlog ... če vam! Prosim, spustite komentar. Morda bi bilo zelo koristno. Tudi! Če imate boljši naslov za to delovno mesto, ne spusti me linije :)


2008 Avgust 2008 2

Nastavitev DOCTYPE v XSL

Prejšnji teden sem ustvaril progessive HTML / CSS postavitev za stranko, jo testirali v IE6, IE7 in FF 3, zdelo popolnoma v redu ... dokler ne! Postavitev je šel naprej po manufacting cikla. To ni uspelo. Elementi postavitev strani šel po vsem mestu, ko je bila postavitev pretvori v HTML in XML XSL se uporablja za to ... Škoda!

Ne morem spati ok čez vikend, v pričakovanju ponedeljek zjutraj, ko bom moral popraviti to SH **. Zdaj pa imajo malo doživetje pri obravnavi tovrstnih situacijah (brskalnika quirks, mislim), sem vedel, da je imela opraviti z nič drugega kot DOCTYPE .... in bilo je ...

Problem:
Hočeš nadzor nad DOCTYPE, saj bo vaša transformacija vključuje privzeto DOCTYPE izrecno, in ti postavitev bo jasno zakaj kretnjo.

Rešitev:
XSLT očala zagotavlja izhodne metode, da se določi, da DOCTYPE za lastni izbor. Tudi za nas UI razvijalci, bi teme interesa lahko HTML metode izhodne in XML metode izhod .

No! preden boste dobili dolgčas, tukaj je rešitev.

Na primer, če bi imeli naslednje DOCTYPE v vašem HTML različica. -

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

Nato v XSL bi morali imeti: -

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

in na koncu! se prepričajte, da vaš XSLT izhod uboga na DOCTYPE, ki ste jih izbrali.


NDK domov | Ki ga izraža | Izražanje Okus | Izražanje Penmenship | Izražanje Awe | Izražanje Sebe