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 שבחרת.


2008 4 מאי 2008

כלול בתוך XSL XSL

אם XML / XSL הופך הוא domian שלך, אז יש פעמים שאנחנו רוצים peice של קוד דינמי לשמש פריט בספריה (להיעשות מחדש שמיש). למה אני מתכוון, מן הסתם יכול להיות ברור יותר עם התרחיש הזה למשל.

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

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

1. food.xml - נתוני XML קובץ שבו השינוי יחול
2. food.xsl - קובץ XSL הראשי, אשר יהפכו food.xml שלנו
3. inc_fruits.xsl - XSL כוללים קובץ יעבד נתונים פירות
4. inc_vegtables.xsl - XSL כוללים קובץ יעבד נתונים vetetables

אני לא חושב שאני צריך להסביר הרבה, את הקודים המרכיבים הנ"ל, יהיה עצמית הסבר ...

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>
<fruits type="tropical">
<item name="mango" moreinfo="http://www.mango.com">Mango is the king of fruits</item>
<item name="banana" moreinfo="http://www.banana.com">Banana once a day , keeps the doctor away</item>
<item name="orange" moreinfo="http://www.orange.com">Orange is the color and rich in vitamin C</item>
<item name="Papaya" moreinfo="http://www.papaya.com">Papaya - Hot when raw, cold when ripe</item>
</fruits>

<vegetables>
<item name="spinach" moreinfo="http://www.spinach.com">Spinach is full of iron</item>
<item name="asparagus" moreinfo="http://www.asparagus.com">Asparagus contains loads of vitamin D </item>
<item name="fenugreek" moreinfo="http://www.fenugreek.com">Fenugreek is rich in vitamin C</item>
</vegetables>
</food>


FOOD.XSL


<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="inc_fruits.xsl" />
<xsl:include href="inc_vegetables.xsl" />
<xsl:template match="/">
<html>
<head>
<title>Title</title>
</head>
<body>
<h3><xsl:value-of select="/food/description" /></h3>
Modification Date : <xsl:value-of select="/food/date" />
<hr/>
<h5> About Fruits</h5>
<xsl:call-template name="about_fruits"/>

<hr/>
<h5> About Vegetables</h5>
<xsl:call-template name="about_vegetables"/>

<hr/>
</ Body>
</ Html>
</ Xsl: תבנית>
</ Xsl: stylesheet>


INC_FRUITS.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="iso-8859-1" />
<xsl:template name="about_fruits">
<xsl:for-each select="/food/fruits/item/@*">
attribute name : <xsl:value-of select="name()"/>
attribute value : <xsl:value-of select="."/> <br />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>


INC_VEGETABLES.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="iso-8859-1" />
<xsl:template name="about_vegetables">
<xsl:for-each select="/food/vegetables/item/@*">
attribute name : <xsl:value-of select="name()"/>
attribute value : <xsl:value-of select="."/> <br/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

להוריד את כל הקבצים הנ"ל כאן (252 הורדות)


2008 4 אפריל, 2008

עבודה עם תכונות ה-XML צומת XSLT

אם אתה משתמש ב-XML ו-XSL, אז אתה יכול לבוא על פני זמן, כאשר אתה צריך לשחק עם התכונות והערכים של צמתים XML ב-XSL לך. הם המון אתרים עם מידע מייגעים על זה, אבל לא מצאתי היו קצרות ומדויקות ... זה לא TUTORIAL XML / XSL, אבל הניסיון שלי שם, יחד מעין רשימת לרמות ...

דגימת ה-XML אנו עובדים עם נראה כך ...

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="food.xsl"?>
<food>
<fruits type="tropical">
<item name="mango" moreinfo="http://www.mango.com">Mango is the king of fruits</item>
<item name="banana" moreinfo="http://www.banana.com">Banana once a day , keeps the doctor away</item>
<item name="orange" moreinfo="http://www.orange.com">Orange is the color and rich in vitamin C</item>
<item name="Papaya" moreinfo="http://www.papaya.com">Papaya - Hot when raw, cold when ripe</item>
</fruits>
</food>

כך מאפשר להתחיל להפוך XML מעל שלנו באמצעות XSL

דוגמה 1: הצגת הערך תכונה נבחר

<xsl:value-of select="/food/fruits/item[@name='orange']" /><br />
to get more information about <a href="{/food/fruits/item[@name='orange']/@moreinfo}" target="new" ><xsl:value-of select="/food/fruits/item[@name='orange']/@name" /> </a>

התוצאה HTML ייראה

Orange is the color and rich in vitamin C,
to get more information about <a href="http://www.orange.com" target="new">


דוגמא 2: שהסתחררו ולהציג את כל שמות מאפיין XML וערכיהם

<xsl:for-each select="/food/fruits/item/@*">
attribute name : <xsl:value-of select="name()"/>,
attribute value : <xsl:value-of select="."/> <br />
</xsl:for-each>

התוצאה HTML ייראה


attribute name : name, attribute value : mango
attribute name : moreinfo, attribute value : http://www.mango.com
attribute name : name, attribute value : banana
attribute name : moreinfo, attribute value : http://www.banana.com
attribute name : name, attribute value : orange
attribute name : moreinfo, attribute value : http://www.orange.com
attribute name : name, attribute value : Papaya
attribute name : moreinfo, attribute value : http://www.papaya.com


להוריד את כל הקבצים הנ"ל כאן (245 הורדות)



לראות את החלל הזה, אני אמשיך לעדכן את זה עם הממצאים החדשים ...


NDK הבית | הבעת IT | חך הבעת | Penmenship הבעת | הנוראים הבעת | לבטא את עצמי