2008 13 أغسطس 2008

Tokenizing سلسلة محددة داخل XSL

إذا الشرط الخاص بك هو تقسيم قيمة العقدة في XML، التي تحتوي على سلسلة محددة من قيمة، إلى عناصر فردية، ثم وصلت إلى المكان الصحيح ... ننظر لها في المثال أدناه. إذا كنت معتادا قليلا من XML و XSL ... وأنا لا أعتقد أنك سوف تحتاج إلى أي تفسير.
أيضا، هذا المثال يشمل استخدام وظائف XSL مثل XSL: استدعاء قالب، XSL: فرعية، من قبل، XSL: فرعية، بعد، اذا كان هذا ما كنت بعد.

XML إلى أن تتحول (food.xml): -
تولي المهمة هي tokenize في سلسلة محدد بواسطة فاصلة، في أن "كلمات" علامة

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

تحميل هذا فو قالب وورد المتمركزة

إذا كنت واحدا من هؤلاء الرجال (مثلي)، الذي تحقق في كثير من الأحيان المغلق من صفحة HTML جيدة الصنع، لمعرفة أفكار جديدة أو أيا كان، ثم كنت قد لاحظت أننا قد تستخدم لتحديد المواقع FAUX (كما سبق ذكره في مقالتي السابقة ونحن باستخدام الموضع المطلق فو: تخطيط CCS بريليانت )

قمنا بعمل جيد على هذا القالب، حتى ظننت أنه لطيف لتشاركه .... حمل هذا الموضوع وورد (التحميل 195 مرات)


2008 7 أغسطس 2008

ANIMOTO: لطيف "واجهة المستخدم ريتش" بدون فلاش!

هل رأيت animoto.com؟ حسنا! هذه ليست ميلادي، أنا حقا أحب ذلك! وأنها قبلة واجهة المستخدم ASS في الواقع

جئت عبر هذا الموقع قبل بضعة أسابيع. رأيت في الصفحة الأولى، الطعجه يزعج كثيرا. بالنسبة لي، كان مجرد موقع آخر مع بعض محتوى فلاش الغنية، مما يسمح للمستخدمين لتحميل الصور، واختيار بعض المسارات وتحويلها إلى عرض شرائح صور لطيفة. تحميل FLV، ووضعه على أي موقع من اختيارك (يوتيوب، MetaCafe، الفيسبوك ويحب) ... الفترة.

بالأمس عندما رأيت صفحات تدفق الداخلية، التي أخذت المستخدم من خلال إنشاء هذا العرض .... ذهبت OH ​​WOW! عندما أدركت أنه لا يوجد شيء من FLASH المستخدمة. كان في الواقع واجهة المستخدم الغنية. يجب على جميع المطورين واجهة المستخدم تطمح إلى خلق أو على الأقل أن تكون جزءا من الفريق الذي قامت به هذه الواجهة .... تماما الرائعة! وملهم!

وقد اطلع ... http://animoto.com/ ... وتسجيل واللعب معها ... عندها فقط يمكن أن نقدر لكم عبقرية.


2008 4 أغسطس 2008

وهناك مشكلة مع موقف () في XSL ... أو غير ذلك؟

وكان لي هذه المشكلة strage أثناء إنشاء XSL اليوم. بحثت عن أجوبة في جميع أنحاء الشبكة، ولكن لم أستطع العثور على أي .... في الواقع أعتقد! وأنا أعلم الطعجه عن مشكلتي، وذلك ما يمكنني تبحث عنه؟

على أي حال! فقط في حال كان لديك نفس هذه المشكلة جدا جدا والى حد ما من قبل قوة من القوى التي تمكنت من الهبوط على هذه الصفحة ... كنت أشكر لي طن ... وإذا كنت قد سقطت عن طريق الخطأ في هذه الصفحة لبعض مصير غريب وكنت يحدث ليكون مطور XSL، DO تقديم مذكرة من هذا الآن، من أجل قضية المستقبل، وإذا في يوم من الأيام، كنت تواجه هذه المشكلة، ثم قد القوة لن أكون معكم.

مشكلة البيان:
لدي هذه XML، حيث هناك نوعان من العقد مع عناصر متعددة في ذلك، وهذه البنود بين هذه العقد لهما المراسلات 1-1. في المثال أدناه، كل عنصر في <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>

الآن، ولدي حلقة، حيث كنت حلقة من خلال name="SITENAME"> <array، وكنت ترغب في الحصول على هذا البند ذات الصلة (في موقف المقابلة) في name="PLAYURL"> <array،

ما يمكن ان نفعله هو محاولة بشكل عادي ...

<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 ويمكن أن يكون من أي مساعدة ... حاولت كل خيار آخر ... وأنها لا تزال تعمل متعود ... حسنا! thats ما حدث لي أتلست ...

أميل يأس! جرب هذا

<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 و 3 فرنك فرنسي، ويبدو غرامة تماما ... حتى! ذهب تخطيط مزيد من الانخفاض في دورة manufacting. فشلت. عناصر تخطيط الصفحة فقط ذهبت في كل مكان عندما تم تحويله إلى نسق HTML و XML XSL المطبق عليه ... المشكله!

لا يستطيع النوم موافق خلال عطلة نهاية الأسبوع، تحسبا من صباح يوم الاثنين، وعندما سيكون لديك لإصلاح هذه SH. ** ولكن وجود الآن لخبرتها قليلة في التعامل مع هذا النوع من الحالات (المراوغات متصفح، أعني)، وكنت اعرف انه كان علي القيام به مع أي شيء آخر ولكن DOCTYPE .... وكان من ...

المشكلة:
تريد السيطرة على DOCTYPE، منذ تحول الخاصة بك وسوف تشمل DOCTYPE الافتراضية بشكل واضح، وكنت تخطيط سيغيب عن إرم.

الحل:
XSLT المواصفات ويوفر وسائل الانتاج لتحديد DOCTYPE للمن choise. أيضا، بالنسبة لنا واجهة المستخدم للمطورين، فإن المواضيع التي تهم تكون وسائل الانتاج 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 الرئيسية | معربا عن تكنولوجيا المعلومات | الحنك تعرب | Penmenship تعرب | الرهبة تعرب | تعرب عن نفسي