Tag Archives: XSLT

XSLT და jQuery ნიმუშები

მე არ აკეთებს ბევრი of XSLT და jQuery და ეგონა, მინდა იზიარებენ რამდენიმე snippets, რომ სხვები შეიძლება სასარგებლო მომავალში.

მაგალითი 1: გადასცემს მარტივი JavaScript / jQuery წელს XSLT:

<XSL:template match="something" xml:space="preserve">

  <!– ცარიელი out შეკითხვის მეგობრული ფილტრებით ფარული სფეროში –>
  <script type="text/javascript">
    $(დოკუმენტი).მზად(ფუნქცია(){
      $("#QueryFriendlyFilters").val("empty");
    });
  </დამწერლობის>

</XSL:template>

ცოტა emits რამდენიმე JavaScript რომ ელოდება გვერდი დასრულება დატვირთვა (გამო $(დოკუმენტი).მზად(...)) შემდეგ კი ადგენს ღირებულება ფარული ველში QueryFriendlyFilters რომ ლიტერატურული ღირებულება "ცარიელი".

მაგალითი 2: გამოყენება <XSL:თუ> რათა შეამოწმოს "მეტია",  "ნაკლები", და ა.შ..

<XSL:template match="something" xml:space="preserve">

  <div id="fdcAllFilters">
 
    <XSL:if test="@Count>0">
      <span class="fdcFilterLabel">აქტუალური ფილტრებით:</span>
    </XSL:თუ>

    <!– მეტი პერსონალი აქ ხდება. –>

</XSL:template>

ზემოთ snippet ამოწმებს თუ ატრიბუტებს, სახელწოდებით "იმედი" და "რაღაც" ელემენტი მეტია ნულოვანი.  XML უკან ეს იქნება რაღაც:"

<რაღაც Count = "5" />

მაგალითი 3: Iterate მთელი ელემენტები, interspersing jQuery ზარები.

<!– Iterate მთელი ფილტრებით და არიან სწორი  ბმულები. –>
<XSL:for-each select="UserFilter">

  <a class="FilterHref" href="javascript:mySubmitPage(‘RemoveUserFilter’,'{@ ID}')">[X]</a>

  <span class="fdcFilterLabel"><XSL:value-of select="@FilterValue"/></span>

  <script type="text/javascript">

    $(დოკუმენტი).მზად(ფუნქცია(){
        <XSL:ტექსტი><![CDATA[$("#QueryFriendlyFilters").val( ($("#QueryFriendlyFilters").val() + " ]]></XSL:ტექსტი>\"<XSL:value-of select="@FilterValue"/>\"<XSL:ტექსტი><![CDATA["));]]></XSL:ტექსტი>
    });

  </დამწერლობის>

</XSL:for-თითოეული>

ზემოთ snippet არის ყველაზე რთული და შეიძლება იყოს ადვილი გზა ამის გაკეთება.

XML უკან გამოიყურება დაახლოებით ასე:

<UserFilter ID = "123" FilterValue = "xyzzy" />

ეს snippet არის iterating მეშვეობით <მომხმარებელი ფილტრაციის> კვანძების. 

ეს პირველი emits წამყვანმა tag, რომ როდესაც დაწკაპავთ აღვიძებს JavaScript ფუნქცია, რომელიც უკვე გვერდზე, "MySubmitPage" და გადის ღირებულება ატრიბუტი ჩართულია <მომხმარებელი ფილტრაციის> კვანძის სახელწოდებით "ID". 

ეს მაშინ emits ზოგიერთი jQuery, რომ ელოდება გვერდზე ჩატვირთვა.  სწორედ jQuery განახლებები ფარული სფეროში სახელწოდებით "QueryFriendlyFilters" დამატებით ღირებულებას FilterValue ატრიბუტი.  შენიშვნა ყველა გიჟები <XSL:ტექსტი> და <![CDATA[ ... ]]> პერსონალის.

ეს არის ის, იმედი მაქვს, ეს ეხმარება!

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

უსასრულოდ Nesting <div> Tags და jQuery

ეს ჩანს, ასეთი oddball თემას, მე არ ვარ დარწმუნებული, რომ ეს ნამდვილად ღირს ბლოგინგის შესახებ, მაგრამ ეს არ შეუწყვეტია მე წინაშე, ასე რომ აქ ჩვენ Smile

მე შემუშავების პროექტზე, სადაც მე უბიძგებენ გარკვეული მონაცემების ძებნის, შეფუთვის იგი დაყოფილია XML გაგზავნა და შემდეგ რომ XML საბოლოოდ გადაკეთდა HTML მეშვეობით XSLT.  აქ არის ბევრი jQuery ჩართული, ერთი ცოტა რომელიც ახორციელებს რამდენიმე tabbing ფუნქცია.  როდესაც თქვენ დააჭირეთ tab (ნამდვილად, a <div>), jQuery აღვიძებს. დამალვა() და. შოუ() სხვადასხვა divs (საწყის გვერდზე დატვირთვის იწერს ყველა შინაარსი ასე რომ არ არსებობს postbacks ამ შემთხვევაში).

რამოდენიმე საათის წინ, tab გადართვის ლოგიკა დაიწყო მოიქცევა erratically და ეს არ აჩვენებს ერთი ჩემი ჩანართი.  მე საბოლოოდ დააფიქსირა, მას იმ ფაქტს, რომ ინტერნეტ explorer (სულ მცირე) ეგონა, რომ <div> tags წყობილი შორს, რამდენადაც უფრო ღრმა, ვიდრე intended.The დეველოპერი პანელი იმას აჩვენებენ:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           ..............................
                   </div>  <-საბოლოოდ აჩვენებს დაიხურა ყველა გზა ქვემოთ აქ!

ასე რომ,, თუ წავიდოდი $("# Tab1Content").დამალვა(), მინდა ასევე მალავს Tab2 და ვერც კი ნახოთ Tab2 თუ არ ასევე აჩვენებს Tab1.  მე გადაწერა და გაკრული კოდი დაყოფილია ვიზუალური სტუდია და ეს აჩვენა ყველა div-ს უგულებელყოფა up ლამაზად, ისევე, როგორც ისინი უნდა აკეთებს, ეძებს როგორც ამ:

-<div id = "Tab1Content">
  +<div>
  +<div>
-<div id = "Tab2Content">
  +<div>
  +<div>

მე სცემეს ჩემი უფროსი წინააღმდეგ კედელზე ხნით და შენიშნა, რომ ფაქტობრივი HTML კოდი იყო მომტანი ბევრი ცარიელი <div> tags, მოსწონს:

<სხეულის>

  <div id = "Tab1Content">

    <div id = "row1" />
    <div id = "row2" />

  </div>

  <div id = "Tab2Content">

    <div id = "row1" />
    <div id = "row2" />

  </div>

</სხეულის>

(აღნიშნული waaaaaaaaaaaay oversimplified.  ცარიელი div tags აბსოლუტურად ძალაშია. ზოგიერთი ჩემი <div> tags იყო სავსე შინაარსი, მაგრამ კიდევ ბევრი რამ არ იყო.  ჩამოვედი რეალიზაციის, რომ ჩემი <XSL:for-თითოეული> დირექტივა ასხივებენ მოკლე ფორმა div tags როდესაც XSL:for-თითოეული არ "აღმოაჩინა მონაცემები.  მე იძულებული HTML კომენტარის შევიდა გამომავალი, როგორც ნაჩვენებია:

image

 

მას შემდეგ, რაც გავაკეთე, რომ, ყველა div ის გაფორმებულია ლამაზად და ჩემი tab ჩართვის მუშაობა დაიწყო.

როგორც ყოველთვის, ვიმედოვნებ, რომ ეს ეხმარება ვინმე pinch.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

მაგალითი: XSLT ქმნის HTML href-ს

მე აკეთებდა ცოტა XSL პერსონალი ბოლო პერიოდში და მეგონა, მე მინდა ერთად სინჯი ჩემი მომავალი მინიშნება და ეს შეიძლება იყოს ღირებულების ყველა ჩვენგანისთვის XSLT-ers მიღების მცხოვრები internets.

განვიხილოთ შემდეგ XML:

<FdcSearchTabsCollection Count="2">
  <SearchTab Label="Industry" SortOrder=”00” Label=”Industries” SearchConstraints="contenttype:მრეწველობა" TabID="831b2a74-98c4-4453-8061-86e2fdb22c63"/>
  <SearchTab Label="Practices" SortOrder=”01” Label=”Practices” SearchConstraints="contenttype:PracticeGroups" TabID="678e206b-6996-421f-9765-b0558fe1a9c0"/>
</FdcSearchTabsCollection>

შემდეგ XSL snippet იქნება გადანაწილებული ჩამონათვალი hrefs ჩანართების:

<XSL:template match="FdcSearchTabsCollection" xml:space="preserve">
   
    <!– The "all" tab –>
    <a href="javascript:ViewTab(‘All’)">ყველა</a>
   
    <!– თითოეული ინდივიდუალური tab –>
    <!– Iterate მთელი ჩანართების და არიან სწორი  ბმულები. –>
    <XSL:for-each select="SearchTab">
      <XSL:sort select="@SortOrder"/>

      …
      <a href="javascript:ViewTab('{@ TabID}')"><XSL:value-of select="@Label"/></a>
    </XSL:for-თითოეული>

    <br /> 
   

   </XSL:template>

აი რას ჰგავს ამ SharePoint:

SNAGHTML78aa2cb

 

 

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin