أرشيفات الإشارات: XSLT

عينات XSLT و jQuery

وقد دأبت كثير من XSLT و jQuery والفكر أن نصيب القصاصات قليلة أن آخرين قد تجد من المفيد في المستقبل.

مثال 1: تنبعث منها جافا سكريبت بسيط / jQuery في XSLT:

<xsl:مطابقة قالب = "شيئا" xml:المساحة = "الحفاظ على">

  <!– فارغة من الاستعلام الودية بتصفية الحقل المخفي –>
  <برنامج نصي النوع = "نص/جافا سكريبت">
    $(الوثيقة).استعداد(الدالة(){
      $("#QueryFriendlyFilters").فال("فارغة");
    });
  </البرنامج النصي>

</xsl:قالب>

أن البت تنبعث بعض جافا سكريبت أن ينتظر حتى انتهاء تحميل الصفحة (سبب $(الوثيقة).استعداد(…)) وثم مجموعات القيمة من حقل مخفي يسمى قويريفريندليفيلتيرس إلى قيمة حرفية "فارغ".

مثال 2: استخدام <xsl:إذا كان> للتحقق من "أكبر من",  "أقل", إلخ.

<xsl:مطابقة قالب = "شيئا" xml:المساحة = "الحفاظ على">

  <div معرف = "فدكالفيلتيرس">
 
    <xsl:إذا test="@Count>0">
      <تمتد إلى الطبقة = "فدكفيلتيرلابيل">عوامل التصفية الحالية:</تمتد>
    </xsl:إذا كان>

    <!– المزيد من الأشياء يحدث هنا. –>

</xsl:قالب>

القصاصة أعلاه التدقيق لمعرفة ما إذا كان سمة المسمى "الاعتماد" العنصر "شيء" أكبر من الصفر.  XML وراء هذا سيكون شيئا مثل:”

<عد شيء = "5"/>

مثال 3: Iterate خلال جميع العناصر, لاجتناب المكالمات jQuery.

<!– Iterate خلال كافة عوامل التصفية وعرض الصحيحة  ارتباطات. –>
<xsl:= حدد لكل "أوسيرفيلتير">

  <فئة = "فيلتيرهريف" href = "جافا سكريبت:ميسوبميتباجي('ريموفيوسيرفيلتير','{@ معرف}’)">[X]</أ>

  <تمتد إلى الطبقة = "فدكفيلتيرلابيل"><xsl:القيمة من select="@FilterValue"/></تمتد>

  <برنامج نصي النوع = "نص/جافا سكريبت">

    $(الوثيقة).استعداد(الدالة(){
        <xsl:النص><![CDATA[$("#QueryFriendlyFilters").فال( ($("#QueryFriendlyFilters").فال() + " ]]></xsl:النص>\"<xsl:القيمة من select="@FilterValue"/>\"<xsl:النص><![CDATA["));]]></xsl:النص>
    });

  </البرنامج النصي>

</xsl:لكل>

القصاصة أعلاه هي الأكثر تعقيداً وقد تكون هناك طرق أسهل للقيام بذلك.

XML وراء هذا يشبه تقريبا هذا:

<معرف أوسيرفيلتير = فيلتيرفالوي "123" = "xyzzy"/>

هذا مقتطف من التكرار عن طريق <أوسيرفيلتير> العقد. 

أنها تنبعث أولاً ارتساء الوسم الذي عند النقر فوق استدعاء دالة JavaScript موجود بالفعل على الصفحة, "ميسوبميتباجي" وتمرير قيمة السمة <أوسيرفيلتير> العقدة المسماة "معرف". 

ثم أنها تنبعث بعض jQuery التي ينتظرها للصفحة لتحميل.  JQuery أن يقوم بتحديث حقل مخفي يسمى "قويريفريندليفيلتيرس" بإضافة قيمة السمة فيلتيرفالوي.  ملاحظة جميع الجنون <xsl:النص> و <![CDATA[ … ]]> الأشياء.

هذا كل شيء, نأمل أن يساعد!

</نهاية>

الاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin

تداخل بلا نهاية <div> JQuery والعلامات

ويبدو أن هذا موضوع غريب الأطوار هذه, لست متأكداً من الأمر يستحق فعلا عن المدونات, ولكن أن لم توقف لي قبل, حتى هنا نذهب ابتسامة

أنني أعمل على مشروع حيث أنا أشعر بسحب بعض البيانات من البحث, التعبئة والتغليف أنها إلى رسالة XML، ومن ثم أن XML في النهاية تتحول إلى HTML عن طريق XSLT.  هناك الكثير من مسج, بت واحد من الذي يقوم بتنفيذ بعض وظائف الجدولة.  عند النقر فوق علامة تبويب (حقا, أ <div>), مسج استدعاء.hide() و.show() على مختلف divs (تحميل الصفحة الأولى تحميل كافة المحتويات حتى تكون هناك ليست إعادة النشر في هذه الحالة).

حفنة من قبل ساعات, علامة التبويب التبديل بين منطق بدأت تتصرف بطريقة متقطعة، وأنها لن تظهر إحدى علامات بلدي.  أنا في نهاية المطاف تعقب ذلك وصولاً إلى الحقيقة أن برنامج internet explorer (على الأقل) ويعتقد أن <div> العلامات المتداخلة الآن, أعمق بكثير من المقصود.سوف يظهر شريط أدوات المطور:

-<div معرف = "Tab1Content">
  -<div>
    -<div>
      -<div معرف = "Tab2Content">
        -<div>
           …………………………
                   </div>  <-وأخيراً تبين أنها قد أغلقت طوال الطريق هنا!

حتى, إذا فعلت $("# Tab1Content").إخفاء(), أنا أيضا إخفاء Tab2 ويمكن أن تظهر ابدأ Tab2 إذا لم أكن أود أيضا أن تظهر Tab1.  نسخ، ولصق التعليمات البرمجية في visual studio، وأنها أظهرت كل من بطانة div يصل لطيف, مثلما كان من المفترض أن تقوم به, يبحث مثل هذا:

-<div معرف = "Tab1Content">
  +<div>
  +<div>
-<div معرف = "Tab2Content">
  +<div>
  +<div>

ضرب رأسي بالحائط لفترة من الوقت، ولاحظ أن التعليمات البرمجية بلغة HTML الفعلي كان توليد الكثير من فارغة <div> العلامات, مثل:

<الهيئة>

  <div معرف = "Tab1Content">

    <div معرف = "row1"/>
    <div معرف = "row2"/>

  </div>

  <div معرف = "Tab2Content">

    <div معرف = "row1"/>
    <div معرف = "row2"/>

  </div>

</الهيئة>

(ما ورد أعلاه واااااااااااي التبسيط.  علامات div فارغ صحيحة تماما. بعض من بلادي <div> العلامات كانت مليئة بالمحتوى, ولكن الكثير لم تكن.  جئت للتحقيق ذلك بلدي <xsl:لكل> توجيهات كانت تلويثاً القصيرة-الشكل علامات div عند xsl:لم أكن لكل ' العثور على أية بيانات.  أنا يجبرن على تعليق HTML الإخراج, كما هو موضح:

image

 

بعد أن فعلت ذلك, جميع div اصطف لطيف وبلدي التبويب التحول بدأ العمل.

كما هو الحال دائماً, أمل أن يساعد هذا شخص في السؤال.

</نهاية>

الاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin

مثال: XSLT HTML Href لإنشاء

لقد كانت تفعل شيئا من الأشياء XSL في الآونة الأخيرة، ويعتقد أن أضع معا عينة لبلدي الرجوع إليها في المستقبل، والتي قد تكون ذات قيمة لكل منا XSLT-المتطلبات البيئية كسب عيش في الإنترنت.

النظر في XML التالية:

<عد فدكسيرتشتابسكولكشن = "2">
  <تسمية سيرتشتاب = "الصناعة" SortOrder = تسمية "00" = "صناعات" سيرتشكونستراينتس = "نوع المحتوى:الصناعة" تأبيد = "831b2a74-98c4-4453-8061-86e2fdb22c63"/>
  <تسمية سيرتشتاب = "الممارسات" SortOrder = تسمية "01" = "الممارسات" سيرتشكونستراينتس = "نوع المحتوى:براكتيسيجروبس" تأبيد = "678e206b-6996-421f-9765-b0558fe1a9c0"/>
</فدكسيرتشتابسكولكشن>

سينشئ قصاصة XSL التالي قائمة مفروزة من علامات التبويب هريفس:

<xsl:مطابقة قالب = "فدكسيرتشتابسكولكشن" xml:المساحة = "الحفاظ على">
   
    <!– الكل "" علامة التبويب –>
    <a href = "جافا سكريبت:فيوتاب('الكل')">عرض كافة</أ>
   
    <!– كل علامة تبويب فردية –>
    <!– Iterate خلال كافة علامات التبويب وعرض الصحيحة  ارتباطات. –>
    <xsl:= حدد لكل "سيرتشتاب">
      <xsl:فرز select="@SortOrder"/>

      …
      <a href = "جافا سكريبت:فيوتاب(‘{@ تأبيد}’)"><xsl:القيمة من select="@Label"/></أ>
    </xsl:لكل>

    <br/> 
   

   </xsl:قالب>

هنا ما يبدو في SharePoint:

SNAGHTML78aa2cb

 

 

</نهاية>

الاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin