Criando uma folha de estilo XSL para tornar o atributo do caminho do arquivo clicável

0

Em vários diretórios, como "AAA", "BBB" e "CCC", existem centenas de pastas com datas mensais, como "201209", "201310" e "201701". Em cada uma dessas pastas mensais existem centenas de arquivos PDF - todos nomeados como GUID (123e4567-e89b-12d3-a456-426655440000).

Essa é a situação no disco. Assim, todo arquivo PDF tem um caminho como "AAA / 201704 / {123e4567-e89b-12d3-a456-426655440000}"

Fora de um arquivo XML importante, eu consegui dividir cada número de usuário em uma pasta como "KN2012_00435", "FN2015_01234" e "BN2017_08762" e em cada uma dessas pastas há um arquivo XML para cada Arquivo PDF anexado com esse número de casos.

Nesses arquivos XML, o local do arquivo PDF é declarado como um atributo XML DocumentID="{123e4567-e89b-12d3-a456-426655440000}".

Meu primeiro problema é criar uma folha de estilo XSL para tornar esse atributo clicável. Poderia ser feito?

Meu segundo problema é que eu gostaria de colocar esses casefolders em um diretório na árvore de diretórios dos arquivos PDF.

No arquivo:

//casenumbers/KN2012_00435/{123e4567-e89b-12d3-a456-426655440000}

... há um GUID clicável que vai para ....

//docs/AAA/201704/{123e4567-e89b-12d3-a456-426655440000}

Isso pode ser feito?

    
por Paul Bergström 20.03.2018 / 08:53

2 respostas

0

Eu não acho que você forneceu informações suficientes para tornar possível fornecer qualquer código, mas sim, no XSLT 2.0 isso é possível. Você precisa do XSLT 2.0 para que (a) você possa usar a função collection () para retornar todos os arquivos em um diretório, e (b) você pode usar a instrução xsl: result-document para escrever múltiplos arquivos de saída.

Quando você diz que quer que algo seja "clicável", presumo que isso significa que você está gerando HTML e visualizando-o no navegador. Mas isso é um palpite. As coisas também podem ser clicáveis, por exemplo, em PDF. Eu não sei como fazer isso, embora provavelmente possa ser feito.

    
por 20.03.2018 / 09:34
0

Consegui resolver a primeira parte do meu problema com este trecho de código:

<xsl:for-each select="//dbo.Documents/@DocumentID">
    <tr bgcolor="#FBF5A4">
        <td><xsl:value-of select="local-name()" /></td>
        <td><a href="{.}"><xsl:value-of select="." /></a></td>
    </tr>
</xsl:for-each>

O segundo problema é fazer um "href" ajustado para que se refira a (em um sistema de arquivos do Windows) K: \ docs \ anydirectory \ anydirectory \ {.}

    
por 20.03.2018 / 16:08

Tags