Category Archives: XSLT

Amostras de XSLT e jQuery

Eu tenho feito muita de XSLT e jQuery e pensei que iria partilhar alguns trechos que outros podem ser úteis no futuro.

Exemplo 1: Emit simples do JavaScript / jQuery em XSLT:

<XSL:jogo de modelo = "algo" XML:Space = "preserve">

  <!– Espaço em branco fora da consulta amigável filtra campo oculto –>
  <script type = "text/javascript">
    $(documento).pronto(função(){
      $("#QueryFriendlyFilters").Val("vazio");
    });
  </script>

</XSL:modelo>

Esse bit emite algum JavaScript que aguarda concluir Carregando a página (devido a $(documento).pronto(…)) e, em seguida, define o valor de um campo oculto chamado QueryFriendlyFilters para o valor literal "vazio".

Exemplo 2: Utilização <XSL:se> para verificar a "maior que",  "menor que", etc.

<XSL:jogo de modelo = "algo" XML:Space = "preserve">

  <div id = "fdcAllFilters">
 
    <XSL:se test="@Count>0">
      <span class = "fdcFilterLabel">Filtros atuais:</extensão>
    </XSL:se>

    <!– mais coisas acontece aqui. –>

</XSL:modelo>

O trecho acima verifica se um atributo chamado "Contar" do elemento "algo" é maior que zero.  O XML por trás disto seria algo como:”

<algo Count = "5" />

Exemplo 3: Percorrer todos os elementos, intercalando chamadas de jQuery.

<!– Iterar em todos os filtros e exibir o correto  ligações. –>
<XSL:for-each selecione = "UserFilter">

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

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

  <script type = "text/javascript">

    $(documento).pronto(função(){
        <XSL:texto><![CDATA[$("#QueryFriendlyFilters").Val( ($("#QueryFriendlyFilters").Val() + " ]]></XSL:texto>\"<XSL:valor de select="@FilterValue"/>\"<XSL:texto><![CDATA["));]]></XSL:texto>
    });

  </script>

</XSL:for-each>

O trecho acima é a mais complexa e pode haver maneiras mais fácil de fazê-lo.

O XML por trás disso fica mais ou menos assim:

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

Este trecho é iterar através de <UserFilter> nós. 

Ele primeiro emite uma âncora tag que quando clicado chama uma função JavaScript que já está na página, "mySubmitPage" e passa o valor de um atributo o <UserFilter> nó chamado "ID". 

Ele, em seguida, emite algum jQuery que aguarda carregar a página.  Esse jQuery atualiza um campo oculto chamado "QueryFriendlyFilters", adicionando o valor do atributo FilterValue.  Observe o louco <XSL:texto> and <![CDATA[ … ]]> coisas.

É isso, esperança que aquilo ajuda!

</fim>

Subscreva ao meu blog.

Siga-me no Twitter em http://www.twitter.com/pagalvin

Infinitamente aninhando <div> Tags e jQuery

Este parece ser um tema tão excêntrico, Não tenho certeza realmente vale a pena blogar sobre, mas que nunca deixou de me antes, Então, aqui vamos nós Sorriso

Estou trabalhando fora de um projeto onde estou puxando alguns dados de uma pesquisa, embalagem em uma mensagem de XML e, em seguida, o XML é, finalmente, transformada em HTML através do XSLT.  Há um monte de jQuery envolvido, um pouco de que implementa algumas funcionalidades das tabulações.  Quando você clica em uma guia (realmente, uma <div>), jQuery chama Hide() e show() em várias divs (o carregamento da página inicial baixa todo o conteúdo assim lá não são nenhuma postagens neste caso).

Um monte de horas atrás, na guia comutação lógica começou a se comportar de forma irregular e ele não iria mostrar um dos meus guias.  Eu finalmente seguiu para baixo para o fato de que explorer internet (pelo menos) pensa-se que o <div> marcas aninhadas até agora, muito mais profundo do que se destinam.Mostra barra de ferramentas do desenvolvedor:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           …………………………
                   </div>  <— Finalmente mostrando ele foi fechado todo o caminho aqui!

Assim, se eu fiz um $("# Tab1Content").esconder(), Eu também esconderia Tab2 e nunca poderia mostrar Tab2 se eu não mostrar também Tab1.  Copiei e colei o código em visual studio e ele mostrou tudo de forro da div acima agradàvel, exatamente como eles deveriam estar fazendo, parecido com isto:

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

Eu bati minha cabeça contra a parede por um tempo e notei que no HTML real código foi gerando um monte de vazio <div> marcas, como:

<corpo>

  <div id = "Tab1Content">

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

  </div>

  <div id = "Tab2Content">

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

  </div>

</corpo>

(O acima é waaaaaaaaaaaay simplificado.  As tags div vazia são totalmente válidas. Alguns dos meus <div> marcas estavam cheias de conteúdo, mas muitos outros não foram.  Cheguei à conclusão de que meu <XSL:for-each> directivas foram emitindo a forma curta div marcas quando o xsl:for each não ' encontrar qualquer dados.  Forcei um comentário HTML na saída, como mostrado:

image

 

Depois que eu fiz que, o div alinhado perfeitamente e meu guia comutação começou a trabalhar.

Como sempre, Espero que isso ajude alguém em um beliscão.

</fim>

Subscreva ao meu blog.

Siga-me no Twitter em http://www.twitter.com/pagalvin

Exemplo: XSLT Criando HTML Href

Eu estive fazendo um pouco de coisas de XSL ultimamente e pensei que eu iria montar uma amostra para minha referência futura e que pode ser de valor para todos nós XSLT-ers fazendo uma vida na internets.

Considere o XML a seguir:

<Contagem de FdcSearchTabsCollection = "2">
  <Pesquisarpesquisaguia Label = "indústria" SortOrder = "00" Label = "Indústrias" SearchConstraints = "contenttype:Indústria" TabID = "831b2a74-98c4-4453-8061-86e2fdb22c63" />
  <Pesquisarpesquisaguia Label = "práticas" SortOrder = "01" Label = "Práticas" SearchConstraints = "contenttype:PracticeGroups" TabID = "678e206b-6996-421f-9765-b0558fe1a9c0" />
</FdcSearchTabsCollection>

O seguinte trecho de XSL irá gerar uma lista classificada de guias hrefs:

<XSL:jogo de modelo = "FdcSearchTabsCollection" XML:Space = "preserve">
   
    <!– A todos"" Guia –>
    <um href = "javascript:ViewTab(' O)">Ver todos os</uma>
   
    <!– Cada guia individual –>
    <!– Fazer uma iteração através de todas as guias e exibir o correto  ligações. –>
    <XSL:for-each selecione = "Pesquisarpesquisaguia">
      <XSL:classificação select="@SortOrder"/>

      …
      <um href = "javascript:ViewTab(‘{@ TabID}’)"><XSL:valor de select="@Label"/></uma>
    </XSL:for-each>

    <DRI> 
   

   </XSL:modelo>

Aqui está o que olha como no SharePoint:

SNAGHTML78aa2cb

 

 

</fim>

Subscreva ao meu blog.

Siga-me no Twitter em http://www.twitter.com/pagalvin