2008 Srpen 13 2008

Tokenizing oddělovači řetězec uvnitř XSL

Pokud váš požadavek rozdělit uzlu hodnotu ve formátu XML, který obsahuje řetězec oddělený hodnoty, do jednotlivých položek, pak jste na správné místo ... podívejte se na níže uvedeném příkladu. Pokud jste obeznámeni s trochou XML a XSL ... Nemyslím si, že budete potřebovat nějaké vysvětlení.
Také tento příklad zahrnuje použití funkcí jako je XSL xsl: call-template, xsl: substring-before, xsl: substring-after, jestli to, co jste po něm.

XML, které se zpracovávají (food.xml): -
Předpokládejme, že úkolem je tokenize řetězec oddělený čárkou, v na "klíčových slov" tagů

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

Netřeba dodávat, že ... stačí změnit parametr "delimitr" na oddělovač dle vlastního výběru


2008 11.08.2008

Stáhněte si toto Faux umístěn WordPress šablony

Pokud jste jeden z těch kluků (jako já), kteří často kontrolovat CSS dobře provedené stránky HTML se inspirovat, nebo co, a pak jste si možná všimli, že jsme použili Faux polohy (jak již bylo řečeno v mém dřívějším článku jsme Faux pomocí absolutní polohy: Brilantní CCS Layout )

My jsme některé dobré práce na této šabloně, takže si myslel, že by hezké sdílet .... Stáhněte si toto téma WordPress (staženo 196 krát)


2008 7. srpna 2008

ANIMOTO: Opravdu Nice "bohaté uživatelské rozhraní" bez blesku!

Viděli jste animoto.com? No! to není AD, opravdu se to líbilo! a to je polibek ASS UI opravdu

Narazil jsem na tomto místě před několika týdny. Viděl jsem první stránku, dint obtěžovat moc. Pro mě to byl jen další místo s nějakým bohatým obsahem Flash, který umožňuje uživatelům vkládat obrázky, vyberte nějakou stopu a změnit to na pěkný obrázek slideshow. Stáhnout FLV, a dát to na jakémkoliv místě vašeho výběru (YouTube, Metacafe, Facebook a rád) ... OBDOBÍ.

Včera, když jsem viděl, vnitřní tok stránky, které měla na uživatele přes vytvoření této prezentace .... Šel jsem OH WOW! Když jsem si uvědomil, že tam nebylo trochu FLASH použít. To bylo opravdu bohaté uživatelské rozhraní. Všechny uživatelské rozhraní vývojáři musí se snažit vytvořit nebo alespoň být součástí týmu, který učinil toto rozhraní .... Naprosto geniální! A inspirující!

PODÍVEJTE SE ... http://animoto.com/~~HEAD=dobj ... a zaregistrujte se a hrát si s ním ... teprve pak můžete ocenit genialitu.


2008 Srpna 4. 2008

Problém s umístěním () v XSL ... nebo je to?

Měl jsem tento problém strage při vytváření XSL dnes. Hledali odpovědi na celém internetu, ale couldnt najít žádné .... Vlastně myslím, že! Já vím, co dint můj problém byl, tak co mám hledat?

Každopádně! Jen v případě, že máte tento samý problém taky a nějak o moc sil se vám podařilo přistát na této stránce ... děkuji byste mi spoustu ... A pokud jste náhodou přistál na této stránce nějakou podivnou osudem a se stalo, že developer XSL, DO MAKE A tuto skutečnost na vědomí NYNÍ do budoucna příčiny, pokud je nějaký den, budete čelit tomuto problému, pak síla nemusí být s vámi.

Problém prohlášení:
Mám tento XML, kde jsou dva uzly s více položek v něm a zboží mezi těmito dvěma uzly mají jeden na jednoho korespondenci. V níže uvedeném příkladu, každá položka v uzlu <array name="PLAYURL" /> týká (odpovídající pozice) na položku v uzlu <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>

Teď mám smyčku, kde i přes smyčku <array name="SITENAME">, a chci se dostat související položky (na odpovídající pozici) v <array name="PLAYURL">,

Co byste normálně snažit udělat, 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 zvyklý fungovat ... Ach! Surpised ...

Nyní byste asi chtěli vyzkoušet, něco takového ...

<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ět to zvyklý pracovat ... Teď jste poškrábání vaší hlavě, snaží se obrátit každý, kdo si myslíte, že zná nějaký XSL a mohla by být žádný smysl ... pokusu každou jinou možnost ... a ještě to nebude fungovat ... No! To je co se mi stalo aspoň ...

Dont Zoufalství! Zkuste 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 Zeptej se mě proč to funguje. Příčina i dont mít správný důvod ... pokud nechcete! Prosím, Drop komentář. To by mohlo být docela užitečné. Také! Pokud máte lepší název pro tento post, to mě vysadil řádku :)


2008 Srpen 2008 2

Nastavení DOCTYPE v XSL

Minulý týden jsem vytvořil PROGESSIVE HTML / CSS layout pro klienta, zkouší to v IE6, IE7 a FF 3, vypadal naprosto v pořádku ... až! Rozložení šel dál po manufacting cyklu. To se nezdařilo. Prvky rozvržení stránky jen chodil všude, kdy bylo rozložení HTML převedené do XML a XSL pro něj použita ... trapas!

Nemohl spát v pořádku o víkendu, v očekávání pondělního rána, kdy budu muset opravit tento SH **. Ale teď tak trochu zažít při řešení těchto situací (druh prohlížeče vtípky, mám na mysli), věděl jsem, že to musel udělat s ničím jiným, ale DOCTYPE .... a bylo to ...

Problém:
Chcete, aby kontrolu nad DOCTYPE, protože vaše transformace bude obsahovat výchozí DOCTYPE explicitně, a vy rozložení bude pozor na los.

Řešení:
XSLT specifikace poskytuje výstupní metody nastavit na DOCTYPE z výběrem. Také pro nás vývojáři uživatelského rozhraní by témat zájmu je HTML výstup metody a XML výstupní metody .

No! Před nudit, tady je oprava.

Např. pro, pokud byste měli následující DOCTYPE v HTML verzi:. -

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

Pak v XSL byste mít následující: -

<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čně! se ujistěte, že XSLT výstup poslouchá DOCTYPE jste si vybrali.


NDK domů | Vyjádření IT | Vyjádření patra | Vyjádření Penmenship | Vyjádření Awe | Vyjádření Myself