2008 Sierpień 13 2008

Tokenizing łańcuchem znaków rozdzielonych wewnątrz XSL

Jeśli wymogiem jest, aby podzielić węzła wartość w formacie XML, który zawiera łańcuchem znaków rozdzielonych wartości do poszczególnych elementów, to osiągnie właściwe miejsce ... spojrzeć na poniższy przykład. Jeśli jesteś zaznajomiony z odrobiną XML i XSL ... Nie sądzę, by trzeba żadnych wyjaśnień.
Również ten przykład obejmuje korzystanie z funkcji XSL jak xsl: call-template, xsl: substring-before, xsl: substring-after, jeśli to, co jesteś po.

XML do transformacji (food.xml): -
Załóżmy, że zadanie to tokenize na string ograniczoną przecinkiem, w tag "słów kluczowych"

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

Wynikowy wyjście 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>

Nie trzeba dodawać ... po prostu zmienić parametr "delimitr" do ogranicznika do wyboru


2008 11 sierpnia 2008

Pobierz ten Faux umieszczony szablonu WordPress

Jeśli jesteś jednym z tych facetów (jak ja), którzy często sprawdzać CSS dobrze wykonane strony HTML, aby zainspirować czy cokolwiek innego, to pewnie zauważyłeś, że użyliśmy Faux pozycjonowania (jak już wspomniano we wcześniejszym artykule Jesteśmy Faux Absolute Positioning używając: Brilliant Układ CCS )

Zrobiliśmy kawał dobrej roboty na tym szablonie, więc pomyślałem, że miło się nią dzielić .... Pobierz ten temat WordPress (pobrany 195 razy)


2008 7 sierpnia 2008 r.

ANIMOTO: Really Nice "bogaty interfejs użytkownika" bez lampy błyskowej!

Widzieliście animoto.com? Dobrze! to nie jest AD, ja naprawdę się podobało! i jest Pocałuj UI ASS rzeczywiście

Natknąłem się na tej stronie kilka tygodni temu. Zobaczyłem pierwszą stronę, DINT niepokoić wiele. Dla mnie to był po prostu kolejnym miejscu z pewnym bogatej zawartości flash, która umożliwia przesyłanie obrazków, wybierz jakiś utwór i przekształcić go w ładny pokaz slajdów obrazu. Pobierz FLV, i umieścić go na dowolnym miejscu wybranym (YouTube, Metacafe, Facebook i lubi) ... okres.

Wczoraj, kiedy zobaczyłem wewnętrznych stron przepływu, które miały użytkownika przez tworzenie tego pokazu .... Poszedłem OH WOW! Kiedy zdałem sobie sprawę, że nie było trochę FLASH używane. To był naprawdę bogaty interfejs użytkownika. Wszyscy deweloperzy UI musi dążyć do tworzenia lub przynajmniej być częścią zespołu, który zrobił ten interfejs .... Absolutnie genialne! I inspirująca!

Wystarczy popatrzeć ... http://animoto.com/~~HEAD=dobj ... i zarejestrować się i grać z nim ... tylko wtedy można docenić geniusz.


2008 4 sierpnia 2008 r.

Problem z pozycją () w XSL ... albo to jest?

Miałem ten problem strage podczas tworzenia XSL dziś. Poszukiwanie odpowiedzi w całej sieci, ale nie potrafił znaleźć żadnego .... Właściwie myślę! I dint wiem, co mój problem był, więc co mam szukać?

Tak! Na wszelki wypadek masz ten sam problem zbyt bardzo i jakoś przez mocą mocy, jakiej udało się wylądować na tej stronie ... chcesz mi podziękować ton ... A jeśli przypadkowo wylądował na tej stronie jakiegoś dziwnego losu i zdarzy ci się być Deweloper XSL, DO zanotuj to teraz, w przyszłości przyczyn, jeśli niektóre dni można napotkać ten problem, wtedy siła nie może być z tobą.

Oświadczenie problem:
Mam ten XML, w którym są dwa węzły z wielu elementów w nim i elementy pomiędzy tymi dwoma węzłami mieć jeden do jednego korespondencję. W poniższym przykładzie, każda pozycja w węźle <array name="PLAYURL" /> odnosi (odpowiedni pozycja) do elementu w węźle <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 mam pętlę, gdzie i pętli <array name="SITENAME"> i chcę, aby uzyskać powiązanych artykułów w odpowiedniej pozycji) w <array name="PLAYURL">,

Co byś normalnie spróbuj zrobić to ...

<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! TO wont pracy ... Ach! Surpised ...

Teraz będzie prawdopodobnie chcesz spróbować, coś takiego ...

<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 znowu to przyzwyczajenie pracować ... Teraz zarysowania głowę, próbując skontaktować się z każdego, kto zna trochę uważasz, XSL i może być żadną pomocą ... spróbować każdą inną opcję ... i nadal to przyzwyczajenie pracować ... Cóż! Thats co mi się conajmniej ...

DONT Rozpacz! TRY 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>

Nie pytaj mnie dlaczego to działa. Bo nie mam z prawym rozumem ... jeśli to zrobisz! Proszę wrzucić komentarz. To może być całkiem przydatne. Również! jeśli masz lepszy tytuł dla tego postu, to napisz do mnie linii :)


2008 Sierpień 2, 2008

Ustawianie DOCTYPE w XSL

Ostatni tydzień stworzyłem progessive HTML / CSS layout dla klienta, testowałem go w IE6, IE7 i FF 3, wydawała się całkiem dobrze ... aż! układ poszedł dalej w dół cyklu manufacting. To nie powiodło się. Elementy układu strony po prostu poszedł w każdym miejscu, gdy układ HTML został przekształcony XSL i XML stosuje się do niej ... Bummer!

Nie mogłam spać ok w weekend, w oczekiwaniu na poniedziałek rano, kiedy będę musiał naprawić ten SH **. Ale teraz mając trochę experince w radzeniu sobie z tego rodzaju sytuacjach (quirks przeglądarki, mam na myśli), wiedziałem, że miał do czynienia z niczym innym DOCTYPE .... i było ...

Problem:
Chcesz kontrolę nad DOCTYPE, ponieważ twoja przemiana będzie zawierać DOCTYPE domyślny jawnie, a układ będzie się za podrzucenie.

Rozwiązanie:
XSLT specyfikacje zapewnia metody wyjścia ustawić DOCTYPE się z wyborem. Również dla nas programistów interfejsu użytkownika, tematy interesujące byłoby HTML metody wyjścia i metod XML wyjściowe .

Dobrze! zanim się nudzić, tu jest fix.

Na przykład, jeśli miał następujący DOCTYPE w wersji HTML:. -

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

Następnie w XSL trzeba by mieć co następuje: -

<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 koniec! Nie upewnić się, że wyjście XSLT przestrzega DOCTYPE, którą wybrałeś.


NDK startowej | Wyrażając IT | Podniebienie Wyrażając | Penmenship Wyrażając | Awe Wyrażając | Wyrażając Myself