Авторы XML-документа не включали весь текст внутри элемента, который будет преобразован в гиперссылку.Я хотел бы обработать или предварительно обработать XML, чтобы включить необходимый текст.Мне трудно это описать, но простой пример должен показать, что я пытаюсь сделать.Я использую XSLT 2.0.Я уже выполняю обработку регулярных выражений для различных ситуаций, но не могу понять это.
Я знаю, как сделать это с помощью регулярного выражения perl / python, но я не могу понять, как подойти к этому с помощью XSLT.
Вот «очень» упрощенный xml от автора, в котором они исключили «(Лист 3)» из элемента glink .:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
<para>
Go look at figure <glink refid=1>Figure 22</glink> (Sheet 3). Then go do something else.
</para>
</root>
Вот что мне нравитсяпреобразовать туда, где '(лист 3)' теперь находится внутри тега glink:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
<para>
Go look at figure <glink refid=1>Figure 22 (Sheet 3)</glink>. Then go do something else.
</para>
</root>
Случай, когда должно произойти это преобразование, - это когда за элементом glink следует (это регулярное выражение):
\s\(Sheet \d\)
В настоящее время у меня есть 2 XSLT.Первый предварительно обрабатывает XML для преобразования ряда других ситуаций (используя регулярное выражение / xsl: analysis-string).Второй XSLT для преобразования из предварительно обработанного XML в HTML.Второй XSLT имеет шаблон для обработки элементов блеска и превращения его в гиперссылку, но гиперссылка должна включать информацию листа.
Я бы предположил, что проще предварительно обработать этот процесс и оставить второй XSLT в покое, но я всегда ценю лучшие способы.
Спасибо за ваше время.