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 الذي اخترته.


2008 4 مايو 2008

وتشمل XSL داخل XSL

إذا XML / XSL تحول هو دميان الخاص بك، ثم هناك أوقات عندما نريد peice من رمز الحيوي لاستخدامه البند مكتبة (إلى أن يتم إعادة استخدامها). ما أعنيه، أن من المحتمل أن تكون أكثر واضح مع هذا السيناريو المثال.

تخيل أنك تقوم بإنشاء موقع على شبكة الانترنت (وباستخدام XML، XSL transfroms فكورسي)، ومعظم صفحات سيكون لها وحدة التعليقات. حسنا! ثم إما نسخ أو لصق هذه الشفرة في كل قالب الصفحة (التي لا تملك القول، ولكن جعل صيانة وإعادة صياغة كابوسا) أو حتى أفضل، يمكنك إنشاء ملف تضمين التي يمكن سحبها في أي وقت مضى حيث تريد في الصفحة الخاصة بك ( ق) ...
كيف لنا إذن أن إنشاء ملف تضمين 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: أنماط>


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>

تحميل جميع الملفات المذكورة أعلاه هنا (253 تحميل)


2008 4 أبريل 2008

العمل مع الصفات عقدة XML في XSLT

إذا كنت تستخدم XML و XSL، ثم قد جئت عبر وقت واحد، عندما يكون لديك للعب مع حولها سمات وقيم العقد XML في كنت XSL. هم الكثير من المواقع التي تحتوي على معلومات ينضب طويل حول هذا الموضوع، ولكن لا شيء وجدت كانت مختصرة ودقيقة ... وليس هذا البرنامج التعليمي 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 الرئيسية | معربا عن تكنولوجيا المعلومات | الحنك تعرب | Penmenship تعرب | الرهبة تعرب | تعرب عن نفسي