Tag Archives: XSLT

Mostres de XSLT i jQuery

He estat fent un munt de XSLT, jQuery i thought que i share uns quants fragments que altres el poden trobar útils en el futur.

Exemple 1: Emeten simple JavaScript / jQuery a XSLT:

<XSL:Partit de plantilla = "alguna cosa" XML:espai = "preservar">

  <!– Fora el camp ocult de filtres amistós de consulta en blanc –>
  <tipus d'escriptura = "text/javascript">
    $(document).preparat(funció(){
      $("#QueryFriendlyFilters").val("buit");
    });
  </script>

</XSL:plantilla>

Aquella mica emet una mica de JavaScript que espera per a la pàgina per acabar de carregar (a causa de la $(document).preparat(…)) i llavors conjunts el valor d'un camp ocult anomenat QueryFriendlyFilters al valor literal "buida".

Exemple 2: Ús <XSL:Si> per comprovar "superior",  "menys de", etc.

<XSL:Partit de plantilla = "alguna cosa" XML:espai = "preservar">

  <Div id = "fdcAllFilters">
 
    <XSL:Si test="@Count>0">
      <span class = "fdcFilterLabel">Filtres actuals:</span>
    </XSL:Si>

    <!– més coses passa aquí. –>

</XSL:plantilla>

El fragment damunt comprovacions per veure si hi ha un atribut anomenat "Comptar" de l'element "alguna cosa" més gran que zero.  L'XML darrere d'això seria una cosa així com:”

<alguna cosa Count = "5" />

Exemple 3: ITER a través de tots els elements, intercalant trucades de jQuery.

<!– ITER a través de tots els filtres i mostrar la correcta  enllaços. –>
<XSL:per a cada select = "UserFilter">

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

  <span class = "fdcFilterLabel"><XSL:valor de select="@FilterValue"/></span>

  <tipus d'escriptura = "text/javascript">

    $(document).preparat(funció(){
        <XSL:text><![CDATA[$("#QueryFriendlyFilters").val( ($("#QueryFriendlyFilters").val() + " ]]></XSL:text>\"<XSL:valor de select="@FilterValue"/>\"<XSL:text><![CDATA["));]]></XSL:text>
    });

  </script>

</XSL:per a cada>

El fragment de dalt és el més complex i hi pot haver més fàcils maneres de fer-ho.

L'XML darrere d'això s'assembla més o menys com aquest:

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

Aquest fragment és itereu a través de <UserFilter> Nodes. 

En primer lloc que emet un àncora d'etiquetes que quan fet clic invoca una funció de JavaScript que és ja a la pàgina, "mySubmitPage" i de passa el valor d'un atribut la <UserFilter> node anomenat "ID". 

Llavors emet alguns jQuery que espera per a la pàgina carregar.  Aquell jQuery actualitzacions d'un camp d'amagat anomenat "QueryFriendlyFilters" per afegir el valor de l'atribut FilterValue.  Tingueu en compte tot el boig <XSL:text> i <![CDATA[ … ]]> matèria.

Això és tot, esperança que ajudi!

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

Sense parar nidificació <Div> Etiquetes i jQuery

Això sembla com un tema tan oddball, No estic segur que realment val la pena blogging sobre, però que mai no ha deixat m abans de, Així que aquí anem somriure

Estic treballant en un projecte on m'estic tirant algunes dades d'una cerca, embalatge a un missatge XML i llavors aquella XML en última instància, es transforma en HTML mitjançant XSLT.  Hi ha un munt de jQuery implicats, una mica de que implementa alguna funcionalitat tabulació.  Quan fa clic a una fitxa (realment, un <Div>), jQuery invoca .hide() i .show() en diversos divs (càrrega de la pàgina inicial descarrega tot el contingut, així que hi ha cap devolucions en aquest cas).

Un grapat d'hores fa, la pestanya commutació lògica començar a comportar-se de manera erràtica i no Mostra un dels meus tabuladors.  Jo finalment segueixi fins el fet que Explorador d'internet (com a mínim) pensar que la <Div> Etiquetes niuades lluny, molt més profund que pretén.El toolbar de desenvolupador mostraria:

-<div id = "Tab1Content">
  -<Div>
    -<Div>
      -<div id = "Tab2Content">
        -<Div>
           …………………………
                   </Div>  <— Finalment demostrant que fou clausurada completament aquí!

Així, si feia un $("#Tab1Content").Amaga(), També em vaig amagar els Tab2 i jo podria mai no mostrar Tab2 si no mostrar també Tab1.  Copiava i enganxava el codi a visual studio i va mostrar tots convenint el div manera bonica, igual que suposava estar fent, mirant com aquest:

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

Vaig batre el meu cap contra la paret per una estona i notat que en el present codi HTML codi es genera una gran quantitat de buit <Div> Etiquetes, com:

<cos>

  <div id = "Tab1Content">

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

  </Div>

  <div id = "Tab2Content">

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

  </Div>

</cos>

(Això és waaaaaaaaaaaay simplista.  Les etiquetes div buides són totalment vàlids. Alguns dels meus <Div> Etiquetes estaven plenes de contingut, però no eren molts més.  Vaig arribar a la conclusió que el meu <XSL:per a cada> directives estaven emetent la forma curta etiquetes div quan el xsl:no per-tots "trobar cap dada.  Jo forçat un comentari HTML a la sortida, com es Mostra:

image

 

Després que fes allò, tots el div alineats molt bé i meu tabulador de commutació va començar a treballar.

Com sempre, Espero que això ajudi a algú en un pessic.

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

Exemple: De XSLT crea HTML Href

He estat fent últimament una mica de matèria XSL i pensava que em posaria en conjunt una mostra per a la meva referència futura i que pot ser de valor per a tots nosaltres XSLT-ers fent vida de l'internets.

Considerem el següent XML:

<FdcSearchTabsCollection comte = "2">
  <SearchTab segell = "indústria" Ordenaci = etiqueta "00" = "Indústries" SearchConstraints = "el contenttype:Indústria" TabID = "831b2a74-98c4-4453-8061-86e2fdb22c63" />
  <SearchTab segell = "pràctiques" Ordenaci = "01" Label = "Pràctiques" SearchConstraints = "el contenttype:PracticeGroups" TabID = "678e206b-6996-421f-9765-b0558fe1a9c0" />
</FdcSearchTabsCollection>

El fragment següent de XSL generarà una llista ordenada de pestanyes hrefs:

<XSL:Partit de plantilla = "FdcSearchTabsCollection" XML:espai = "preservar">
   
    <!– El "tot" pestanya –>
    <un href = "javascript:ViewTab(' La)">Visualitza-ho tot</un>
   
    <!– Cada fitxa individual –>
    <!– Iterate a través de tots els tabuladors i mostrar la correcta  enllaços. –>
    <XSL:= seleccionar per a cada "SearchTab">
      <XSL:select="@SortOrder"/ mena>

      …
      <un href = "javascript:ViewTab(‘{@TabID}’)"><XSL:valor de select="@Label"/></un>
    </XSL:per a cada>

    <br /> 
   

   </XSL:plantilla>

Aquí és què mira com Microsoft Office SharePoint Server:

SNAGHTML78aa2cb

 

 

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin