2008 13. August 2008

Tokenerstellung getrennte Zeichenfolge innerhalb einer XSL

Wenn Ihre Forderung ist, um einen Knoten in einer XML-Wert, die eine getrennte Zeichenfolge der Wert enthält aufgeteilt in einzelne Elemente, dann haben Sie den richtigen Ort erreicht ... haben einen Blick auf das Beispiel unten. Wenn Sie sich mit ein wenig XML und XSL sind ... Ich glaube nicht, Sie würden keine Erklärung benötigen.
Außerdem enthält dieses Beispiel Verwendung von XSL-Funktionen wie xsl: call-template, xsl: substring-before, xsl: substring-after, wenn es das ist, was Sie suchen.

XML transformiert werden (food.xml): -
Angenommen, die Aufgabe ist, um die Zeichenfolge getrennt durch Komma tokenize, in den der Tag "Keywords"

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

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

Unnötig zu sagen ... ändern Sie einfach den Parameter "delimitr" mit dem Trennzeichen Ihrer Wahl


2008 11. August 2008

Download Faux positioniert WordPress Template

Wenn Sie einer von diesen Typen (wie mich), die oft überprüfen Sie die CSS von gut gemacht HTML-Seite, um sich inspirieren oder bekommen, was sind, dann hast du vielleicht bemerkt, dass wir FAUX Positioning verwendet werden (wie bereits in meinem früheren Artikel erwähnt haben, sind wir mit Faux Absolute Positioning: A Brilliant CCS-Layout )

Wir haben einige gute Arbeit auf dieser Vorlage, so dachte, es wäre schön, wenn es zu teilen .... Download WordPress Theme (196 mal heruntergeladen)


2008 7. August 2008

ANIMOTO: Really nice "Rich User Interface" ohne Flash!

Haben Sie animoto.com gesehen? Na ja! dies ist kein AD, ich mochte es wirklich! und es ist in der Tat ASS UI Kuss

Ich kam in dieser Website vor ein paar Wochen. Sah die erste Seite, DINT viel Mühe. Für mich war es nur ein weiterer Ort mit einem reichen von Flash-Inhalten, so dass Benutzer, um Bilder hochzuladen, wählen Sie eine Spur auf und wandeln sie in eine schöne Diashow. Download FLV, und legte es auf jeder Seite Ihrer Wahl (YouTube, Metacafe, Facebook und Ähnliches) ... Zeitraum.

Gestern, als ich die interne Strömung Seiten, die den Benutzer durch Schaffung dieser Slideshow nahm sah .... Ich ging OH WOW! Als ich merkte, dass es nicht wenig FLASH verwendet. Es war tatsächlich eine anspruchsvolle Benutzeroberfläche. Alle UI-Entwickler Ziel setzen muss, zu schaffen oder zumindest ein Teil des Teams, die diese Schnittstelle getan hat sein .... Absolutely brilliant! Und inspirierend!

BESUCHEN SIE AUCH ... http://animoto.com/ ... und zu registrieren und mit ihm spielen ... nur dann können Sie schätzen das Genie.


2008 4. August 2008

Ein Problem mit position () in XSL ... oder doch nicht?

Ich hatte dieses Problem strage während der Erstellung einer XSL heute. Suchte nach Antworten im gesamten Netz, bekam aber nicht fündig geworden .... Eigentlich habe ich erraten! Ich DINT wissen, was mein Problem war, so was muss ich achten?

Auf jeden Fall! Nur für den Fall haben Sie dieses sehr gleiche Problem haben und irgendwie durch die Macht des FORCE Sie es geschafft, auf dieser Seite landen ... Sie würden mir danken Tonnen ... Und wenn Sie zufällig auf dieser Seite aus irgendeinem seltsamen Schicksal gelandet sind und Sie gerade sind ein XSL-Entwickler, Machen Sie mal eine Anmerkung des mittlerweile auf, für die Zukunft verursachen, wenn eines Tages, Sie dieses Problem zu begegnen, dann ist die Kraft vielleicht nicht mit euch sein.

Problemstellung:
Ich habe diese XML, wo es zwei Knoten mit mehreren Objekte enthalten und die Elemente zwischen diesen zwei Knoten eine Eins-zu Eins-Entsprechung. Im Beispiel unten, jedes Element im Knoten <array name="PLAYURL" /> bezieht (entsprechend Position) auf einen Posten im Knoten <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>

Nun, ich habe eine Schleife, wo ich eine Schleife durch <array name="SITENAME">, und ich, um das entsprechende Element (an der entsprechenden Position) in <array name="PLAYURL"> erhalten möchten,

Was würden Sie normalerweise versuchen zu tun ist ...

<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! Diese nicht funktionieren ... Ah!! Überascht ...

Jetzt würden Sie wahrscheinlich wollen versuchen, so etwas wie dieses ...

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

Und wieder diese nicht funktionieren ... Jetzt am Kopf kratzen und versuchen, jeden, der etwas weiß, Sie denken, XSL und wenden könnte eine Hilfe sein ... Sie versuchen, jede andere Option ... und es immer noch nicht funktionieren ... Naja! Thats, was mir passiert ist atleast ...

AUSSCHLIEßEN DESPAIR! 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 ASK ME warum es funktioniert. Weil ich derzeit einen richtigen Grund haben ... wenn Sie das tun! Bitte einen Kommentar zu sinken. Es könnte sein, ziemlich nützlich. Auch! Wenn Sie besseren Titel für diesen Posten haben, tun Sie mir eine Zeile :)


2008 2. August 2008

Einstellen der DOCTYPE in XSL

Letzte Woche habe ich eine progressive HTML / CSS-Layout für einen Kunden, getestet in IE6, IE7 und FF 3, schien völlig in Ordnung ... BIS! Das Layout ging weiter unten in der fertigungsgerechtes Zyklus. Er scheiterte. Seitenlayout Elemente ging gerade ganz über dem Platz, wenn das HTML-Layout in XSL und XML angewendet, um es ... Bummer! Umgewandelt wurde!

Konnte nicht schlafen ok über das Wochenende im Vorgriff auf Montag morgen, als ich haben werde, um diese SH ** zu beheben. Aber jetzt mit ein wenig experince im Umgang mit dieser Art von Situationen (Browser Tücken, meine ich), wusste ich, es hatte mit nichts anderem zu tun, sondern DOCTYPE .... und es war ...

Das Problem:
Sie wollen die Kontrolle über die DOCTYPE, da Ihre Transformation wird eine Standard-DOCTYPE explizit enthalten, und Sie werden das Layout für einen Wurf.

Die Lösung:
XSLT-Spezifikationen bietet Methoden, um einen Ausgang der DOCTYPE der Wahl festgelegt. Auch für uns UI-Entwickler, würden die Themen von Interesse sein, HTML-Ausgabe Methoden und Verfahren der XML-Ausgabe .

Na ja! bevor Sie zu langweilen, hier ist der fix.

Für z. B., wenn Sie hatte die folgende DOCTYPE in Ihren HTML-Version:. -

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

Dann in der XSL müssten Sie über Folgendes verfügen: -

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

und endlich! Sie sicherstellen, dass Ihre XSLT-Ausgabe gehorcht der DOCTYPE Sie gewählt haben.


NDK Hause | Ausdruck ihrer IT | Ausdruck Gaumen | Penmenship Ausdruck | Ausdruck Awe | mich auszudrücken