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

הורד תבנית פו מיקומו וורדפרס

אם אתה אחד החבר 'ה האלה (כמוני), שלעתים קרובות לבדוק את ה-CSS של דף ה-HTML עשוי היטב, כדי לקבל השראה או כל דבר אחר, אז אתה אולי הבחין כי השתמשנו מיקום פו (כאמור במאמר קודם שלי אנחנו באמצעות מיקום מוחלט פו: פריסה CCS מבריק )

עשינו עבודה טובה על תבנית זו, כך חשבתי שזה נחמד לחלוק אותו .... זה הורד וורדפרס (הורד 195 פעמים)


2008 7 אוגוסט 2008

Animoto: נחמד באמת "ממשק משתמש עשיר" ללא פלאש!

ראית animoto.com? טוב! זו אינה פרסומת, אני באמת אהבתי את זה! והוא נשק UI התחת אכן

נתקלתי באתר הזה לפני כמה שבועות. ראה את העמוד הראשון, מה 'תם לטרוח הרבה. בשבילי, זה היה סתם עוד אתר עם מעט תוכן פלאש עשיר, המאפשר למשתמשים להעלות תמונות, לבחור חלק אחר ולהפוך אותו במצגת תמונה יפה. הורד FLV, ושם אותו בכל אתר על פי בחירתך (YouTube, Metacafe, פייסבוק ואת אוהבת) ... נקודה.

אתמול כשראיתי את הדפים הזרימה הפנימית, אשר לקח את המשתמש לאורך תהליך היצירה של שקופיות זה .... הלכתי וואו! כשהבנתי שאין קצת FLASH בשימוש. זה היה אמנם ממשק משתמש עשיר. כל מפתחי ממשק משתמש לשאוף ליצור או לפחות להיות חלק מהצוות כי עשה זאת ממשק .... פשוט מבריק! ומעורר השראה!

יש להסתכל ... http://animoto.com/ ... ולרשום ולשחק עם זה ... רק אז אתה יכול להעריך את גאון.


2008 4 אוגוסט 2008

בעיה עם מיקום () ב XSL ... או זה?

היה לי את הבעיה strage תוך יצירת XSL היום. חיפשתי תשובות בכל רחבי הרשת, אבל couldnt למצוא כל .... למעשה אני מניח! אני בכח יודע מה הבעיה שלי, אז מה אני מחפש?

בכל אופן! ליתר ביטחון יש לך את אותה בעיה מאוד מדי ואיכשהו בכוח של חיל הצלחת לנחות על דף זה ... היית להודות לי טון ... ואם יש לך נחת בטעות על גורל מוזרה בעמוד זה יקרה לך להיות מפתח XSL, לעשות רשום את זה עכשיו, הסיבה עתידי, אם ביום מן הימים, אתה עומד מול בעיה זו, ואז כוח לא יכול להיות איתך.

הבעיה בהצהרה:
יש לי את ה-XML, שם יש שני צמתים עם מספר פריטים בו את הפריטים בין שני צמתים יש התכתבות 00:59. בדוגמה הבאה, כל פריט <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 ויכול להיות לעזר בכל ... אתה מנסה כל אפשרות אחרת ... ועדיין זה לא יעבוד ... טוב! Thats מה קרה atleast לי ...

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>

Dont שואלים אותי למה זה עובד. כי אני לא צריך סיבה נכון ... אם אתה עושה! נא לא לזרוק הערה. זה יכול להיות שימושי למדי. כן! אם יש לך כותרת טובה יותר לתפקיד זה, לעשות ירידה לי בשורה :)


2008 2 אוגוסט 2008

הגדרת DOCTYPE ב XSL

בשבוע שעבר יצרתי פריסת progessive HTML / CSS עבור לקוח, נבדק את זה ב IE6, IE7 ו FF 3, נראה בסדר גמור ... עד! פריסת הגדיל את מחזור manufacting. זה נכשל. פריסת רכיבי הדף פשוט יצא בכל מקום, כאשר פריסת ה-HTML הוסב XSL ו-XML להחיל את זה ... באסה!

לא יכולתי לישון על אישור בסוף השבוע, לקראת יום שני בבוקר, כאשר אני אצטרך לתקן את זה SH **. אבל עכשיו שיש experince מעט בהתמודדות עם מצבים מהסוג הזה (Quirks הדפדפן, זאת אומרת), ידעתי שזה היה קשור לשום דבר אחר אבל 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 הבית | הבעת IT | חך הבעת | Penmenship הבעת | הנוראים הבעת | לבטא את עצמי