分類存檔: XSLT

XSLT 和 jQuery 樣本

我做了很多的 XSLT 和 jQuery 和思想會分享他人在將來可能會發現有用的幾個片段.

示例 1: 發出簡單 JavaScript / 在 XSLT jQuery:

<xsl:範本匹配 ="的東西" xml:空間 ="維護">

  <!– 出查詢友好篩選器隱藏欄位保留為空 –>
  <腳本類型 ="文本/javascript">
    $(文檔).準備好了(功能(){
      $(""#QueryFriendlyFilters).瓦爾("空");
    });
  </腳本>

</xsl:範本>

這位會發出一些等待完成載入頁面的 JavaScript (由於 $(文檔).準備好了(…)) 和則集命名隱藏的欄位的值為 QueryFriendlyFilters,"空"的文本值.

示例 2: 使用 <xsl:如果> 要檢查"大於",  "小於", 等.

<xsl:範本匹配 ="的東西" xml:空間 ="維護">

  <div id ="fdcAllFilters">
 
    <xsl:如果 test="@Count>0">
      <跨類 ="fdcFilterLabel">當前的篩選器:</大跨度>
    </xsl:如果>

    <!– 在這裡發生了更多的東西. –>

</xsl:範本>

在上面的程式碼片段檢查名為"計數"的"東西"元素的屬性是否大於零。  這背後的 XML 就像:”

<東西計數 ="5"/>

示例 3: 迴圈訪問所有元素, 排布 jQuery 的調用.

<!– 遍歷的所有篩選器,並顯示正確  連結. –>
<xsl:為每個選擇 ="UserFilter">

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

  <跨類 ="fdcFilterLabel"><xsl:值的 select="@FilterValue"/></大跨度>

  <腳本類型 ="文本/javascript">

    $(文檔).準備好了(功能(){
        <xsl:文本><![CDATA[$(""#QueryFriendlyFilters).瓦爾( ($(""#QueryFriendlyFilters).瓦爾() + " ]]></xsl:文本>\"<xsl:值的 select="@FilterValue"/>\"<xsl:文本><![CDATA["));]]></xsl:文本>
    });

  </腳本>

</xsl:為每個>

上面的程式碼片段是最複雜的可能還有更容易的方法做這件事.

這背後的 XML 大致如下:

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

此程式碼片段迴圈訪問 <UserFilter> 節點。 

它首先發出錨標籤,按一下時調用已經在頁面上的 JavaScript 函數, "mySubmitPage",並傳遞的屬性的值 <UserFilter> 名為"ID"的節點。 

然後,它會發出一些等待載入頁面的 jQuery。  那 jQuery 更新隱藏的欄位命名為"QueryFriendlyFilters"中添加 FilterValue 屬性的值。  請注意所有瘋狂 <xsl:文本> 和 <![CDATA[ … ]]> 東西.

就是這樣, 希望它可以説明!

</結束>

訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

無止境地嵌套 <div> 標記和 jQuery

這似乎是一個古怪的話題, 我不確定這的確值得有關的博客, 但是,從未停止過我, 所以在這裡我們去 微笑

我正在那裡我揪一些資料從搜索專案, 打包成一條 XML 消息,然後該 XML 是最終轉換為 XSLT 通過 HTML。  有很多的 jQuery 涉及, 其中一位實現一些定位字元的功能。  當您按一下某個選項卡上 (真的, 一 <div>), jQuery 調用.hide() 和.show() 對各種 div (初始頁面載入下載的所有內容,所以在這種情況下有沒有回發).

一群小時前, 選項卡切換邏輯開始運行不穩定,它不會顯示我的選項卡中的一個。  我最終跟蹤它的事實,ie 瀏覽器 (至少) 原以為, <div> 到目前為止的嵌套標籤, 遠比預期更深。將顯示開發人員工具列:

-<div id ="Tab1Content">
  -<div>
    -<div>
      -<div id ="Tab2Content">
        -<div>
           …………………………
                   </div>  <— — 終於呈現它一路下來被關閉!

所以, 如果我做了 $("#"Tab1Content).隱藏(), 我還會隱藏前臺,我可能永遠不會告訴前臺是否我還沒給看標籤頁 1。  複製,並且的代碼粘貼到 visual studio 和它很好地顯示所有 div 的襯砌起來的, 就像他們應該做的事情, 這樣看:

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

我的頭靠在牆上打了一會兒,並注意到在實際的 HTML 代碼產生大量的空 <div> 標籤, 像:

<正文>

  <div id ="Tab1Content">

    <div id ="第一行"/>
    <div id ="行 2"/>

  </div>

  <div id ="Tab2Content">

    <div id ="第一行"/>
    <div id ="行 2"/>

  </div>

</正文>

(以上是過於簡單化的 waaaaaaaaaaaay。  空的 div 標籤都是完全有效. 一些我 <div> 標記是內容的完整, 但更多的不是。  我認識到,那我 <xsl:為每個> 指令發出短型 div 標籤時 xsl:對於每個才 ' 找到的任何資料。  被迫輸出的 HTML 注釋, 如圖所示:

image

 

畢竟這樣做, 所有 div 的很好地都排隊和我選項卡切換開始工作.

如往常一樣, 我希望這將有助於在必要時有人.

</結束>

訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

示例: XSLT 創建 HTML Href

我已經被最近做了一些 XSL 的東西,並認為我會把一起樣本供我將來參考,也許是我們所有人的價值的 XSLT ers 謀生的互聯.

考慮下麵的 XML:

<FdcSearchTabsCollection 計數 ="2">
  <SearchTab 標籤 ="產業" 排序次序"00"標籤 = ="工業"SearchConstraints ="contenttype:行業" TabID ="831b2a74-98c4-4453-8061-86e2fdb22c63"/>
  <SearchTab 標籤 ="做法" 排序次序 ="01"標籤 ="做法"SearchConstraints ="contenttype:PracticeGroups" TabID ="678e206b-6996-421f-9765-b0558fe1a9c0"/>
</FdcSearchTabsCollection>

下面的 XSL 代碼片斷將生成 hrefs 選項卡排序的的清單:

<xsl:範本匹配 ="FdcSearchTabsCollection" xml:空間 ="維護">
   
    <!– "全" 選項卡 –>
    <a href ="javascript:ViewTab(全部)">查看所有</一>
   
    <!– 每個單獨的選項卡 –>
    <!– 遍歷所有選項卡,並顯示正確  連結. –>
    <xsl:對於每個選擇 ="SearchTab">
      <xsl:排序 select="@SortOrder"/>

      …
      <a href ="javascript:ViewTab(‘{@ TabID}’)"><xsl:值的 select="@Label"/></一>
    </xsl:為每個>

    <br /> 
   

   </xsl:範本>

這裡是什麼它看起來像在 SharePoint 中:

SNAGHTML78aa2cb

 

 

</結束>

訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin