Создание таблицы стилей XSL, чтобы сделать атрибут пути к файлу активным

342
Paul Bergström

В ряде каталогов, таких как «AAA», «BBB» и «CCC», имеются сотни ежемесячных папок с датами, таких как «201209», «201310» и «201701». В каждой из этих ежемесячных папок есть сотни PDF-файлов - все названы как GUID (123e4567-e89b-12d3-a456-426655440000).

Это ситуация на диске. Таким образом, каждый PDF-файл имеет путь типа «AAA / 201704 / »

Из основного XML-файла мне удалось разбить каждый номер дела на папку, такую ​​как «KN2012_00435», «FN2015_01234» и «BN2017_08762», и в каждой из этих папок есть один XML-файл для каждого PDF-файла. с этим номером дела.

В этих XML-файлах местоположение PDF-файла указывается в виде атрибута XML DocumentID = "".

Моя первая проблема - создать таблицу стилей XSL, чтобы сделать этот атрибут кликабельным. Можно ли это сделать?

Моя вторая проблема заключается в том, что я хотел бы поместить эти папки в каталог в дереве каталогов из PDF-файлов.

В файле:

//casenumbers/KN2012_00435/ 

.... есть кликабельный GUID, идущий в ....

//docs/AAA/201704/ 

Можно ли это сделать?

0
Пожалуйста, попробуйте найти лучшее название для вопроса. Я склоняюсь к переносу этого вопроса в [SO], так как он больше связан с программированием, но, вероятно, здесь хорошо. slhck 6 лет назад 0

2 ответа на вопрос

0
Michael Kay

Я не думаю, что вы предоставили достаточно информации, чтобы дать вам какой-либо код, но да, в XSLT 2.0 это возможно. Вам нужен XSLT 2.0, чтобы (а) вы могли использовать функцию collection (), чтобы вернуть все файлы в каталоге, и (б) вы можете использовать инструкцию xsl: result-document для записи нескольких выходных файлов.

Когда вы говорите, что хотите, чтобы что-то было «кликабельным», я предполагаю, что это означает, что вы генерируете HTML и просматриваете его в браузере. Но это предположение. Вещи также могут быть кликабельны, например, в PDF. Я не знаю, как это сделать, хотя, вероятно, это можно сделать.

0
Paul Bergström

Я смог решить первую часть моей проблемы с помощью этого кода:

<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> 

Вторая проблема состоит в том, чтобы настроить скорректированный href так, чтобы он ссылался (в файловой системе Windows) на K: \ docs \ anydirectory \ anydirectory \ {.}

Похожие вопросы