2008 13 августа 2008

Разметка с разделителями строк в XSL

Если требование разделить значение узла в XML, который содержит строки с разделителями стоимости, в отдельные пункты, то вы пришли в нужное место ... посмотрим на примере, приведенном ниже. Если вы знакомы с немного XML и XSL ... Я не думаю, что вам потребуется никаких объяснений.
Кроме того, этот пример включает использование функции как XSL XSL: вызова шаблонов, XSL: подстроки до, XSL: подстроки, после этого, если это то, что вы после этого.

XML должны быть преобразованы (food.xml): -
Предположим, что задача для разбития строки разделенных запятыми, в теге "ключевые слова"

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

Результирующий выходной 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>

Излишне говорить ... просто измените параметр "delimitr" в разделитель на ваш выбор


2008 11 августа 2008

Скачать этот искусственный Позиционируется WordPress шаблона

Если вы один из тех парней (вроде меня), которые часто проверять CSS хорошо сделанный HTML страницу, чтобы получить вдохновение или любой другой, то вы могли заметить, что мы использовали искусственную позиционирования (как уже было сказано в моей предыдущей статье мы использование искусственного Абсолютное позиционирование: Блестящие Макет CCS )

Мы сделали хорошую работу по этому шаблону, поэтому думал, что это приятно поделиться .... Скачать Эта тема WordPress (скачан 195 раз)


2008 7 августа 2008

Animoto: очень приятно "Богатый пользовательский интерфейс", без вспышки!

Видели ли вы animoto.com? Ну! это не реклама, мне очень понравилось! и это Целуйте жопу интерфейс действительно

Я наткнулся на это место несколько недель назад. Пила на первой странице, DINT беспокоиться. Для меня это был просто еще один сайт с некоторым богатым содержанием вспышкой, что позволяет пользователям загружать изображения, выбрать некоторые дорожки и конвертировать его в хорошее слайд-шоу фотографии. Скачать FLV, и положил его на любой сайт по вашему выбору (YouTube, Metacafe, Facebook и подобные) ... период.

Вчера, когда я увидел внутренним страницам поток, который состоялся пользователей путем создания слайд-шоу .... Я пошел ОН НИЧЕГО СЕБЕ! Когда я понял, что не было немного FLASH используется. Это был действительно богатый пользовательский интерфейс. Все интерфейса разработчики должны стремиться к созданию или, по крайней мере, быть частью команды, которая сделала этот интерфейс .... Абсолютно блестящий! И вдохновение!

ЭТО ИНТЕРЕСНО ... http://animoto.com/ ... и зарегистрироваться и играть с ним ... только тогда вы сможете оценить гения.


2008 4 августа 2008

Проблема с позиции () в XSL ... или нет?

У меня была эта проблема strage при создании XSL сегодня. Посмотрел ответы всей сети, но не мог найти .... На самом деле я думаю! Я знаю, что вмятина моя проблема была, так что мне искать?

Во всяком случае! Только в случае, если у вас есть эта же проблема и как-то слишком силой заставить вас удалось посадить на этой странице ... Вы меня благодарить тонн ... И если вы случайно приземлился на этой странице, по непонятной судьба и вы будете Разработчик XSL, DO Запишите это сейчас, НА БУДУЩЕЕ причина, если в один прекрасный день, вы сталкиваетесь с этой проблемой, то сила не может быть с вами.

Постановка задачи:
У меня есть XML, где есть два узла с несколькими элементами в нем и элементы между этими двумя узлами имеют взаимно однозначное соответствие. В приведенном ниже примере, каждый элемент в узле <array name="PLAYURL" /> относится (соответствующее положение) элемент в узле <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>

Теперь у меня есть цикл, где я цикле <array name="SITENAME">, и я хочу, чтобы получить соответствующий пункт (на соответствующую позицию) в <array name="PLAYURL">,

Что бы вы normaly попытаться сделать, это ...

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

ИЗВИНИТЕ! Это не подходит ... Ах! Surpised ...

Теперь вы, вероятно, хотите попробовать, что-то вроде этого ...

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

И снова это не будет работать ... Теперь вас чесать затылок, пытаясь связаться с каждого, кто вы думаете, знает несколько XSL и может быть любой помощи ... Вы пытаетесь любой другой вариант ... и все же это не будет работать ... Ну! Вот что случилось со мной, по крайней мере ...

DONT отчаивайтесь!! Попробуйте это

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

Не спрашивайте меня, почему это РАБОТАЕТ. Потому что я не имею права причина ... если вы делаете! Пожалуйста удалить комментарий. Это может быть очень полезным. Кроме того! если у вас есть лучшее название для этой должности, сделать напишите мне :)


2008 2 августа 2008

Установка DOCTYPE в XSL

На прошлой неделе я создал progessive HTML / CSS макет для клиента, тестировал в IE6, IE7 и FF 3, казалось, прекрасно ... ПОКА! макет пошел дальше вниз по manufacting цикла. Это не удалось. Элементы макета страницы просто пошел повсюду, когда макет HTML был преобразован в XSL и XML применяется к нему ... Лентяй!

Не могу спать нормально в минувшие выходные, в преддверии понедельник утром, когда я должен буду решить эту SH **. Но теперь есть немного Experince в борьбе с такого рода ситуациями (Browser совместимости, я имею в виду), я знал, что было связано с не что иное, DOCTYPE .... и это было ...

Проблема:
Вы хотите, чтобы контроль над DOCTYPE, так как ваша трансформация будет включать в себя по умолчанию DOCTYPE явным, и макет будет за жеребьевкой.

Решение:
Спецификации XSLT предоставляет методы вывода для установки в DOCTYPE выбор. Кроме того, для нас интерфейса разработчики, темы, представляющие интерес был бы HTML методов вывода и методы вывода XML .

Ну! прежде чем вы получите скучно, вот исправление.

Для, например, если у вас следующие DOCTYPE в HTML-версии. -

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

Затем в XSL вы должны были бы иметь следующее: -

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

и, наконец! Как убедиться, что ваш выход XSLT подчиняется DOCTYPE вы выбрали.


NDK дома | Выражая IT | Выражая неба | Выражая Penmenship | Выражая трепет | выразить себя