Мой ввод выглядит следующим образом
<Report>
Report Title\.br\\.br\SECTION1\.br\\.br\****Plain Text*****\.br\\.br\SECTION2\.br\\.br\******Plain Text*****\.br\\.br\*****Plain Text*****
</Report>
Я хотел бы добавить теги html ниже, используя XSLT, и мой вывод выглядит следующим образом
<Report>
<html> <head> </head> <body> <p> <b><u>Report Title</u></b> </p> <p align="left"> </p> <p align="left"> <b>SECTION1</b> </p> <p align="left"> *****Plain Text***** </p> <p align="left"> </p> <p align="left"> <b>SECTION2</b> </p> <p align="left"> *****Plain Text***** </p> <p align="left"> </p> <p align="left"> *****Plain Text******<b> </b> </p> </body> </html>
</Report>
любые мысли о том, как чтобы достичь этого?
Я начал с создания следующих переменных для токенизации тела моего отчета
<xsl:variable name="ReportText" select="/Report" />
, затем я научился разбивать теги, открывая и закрывая теги.
Opening Report Tags: <html> <head> </head> <body>
Closing Report Tags: </body> </html>
Report Title Opening Tags: <p> <b><u>
Report Title Closing Tags: </u></b> </p> <p align="left> </p>
Section Opening Tags: <p align="left"> <b>
Section Closing Tags: </b> </p>
Text Opening Tags: <p align="left">
Text Closing Tags: </p> <p align="left">
создали следующие переменные, чтобы отразить разбивку
<xsl:variable name="OpeningReportTags" select="'<html> <head> </head> <body>'" />
<xsl:variable name="ClosingReportTags" select="'</body> </html>'" />
<xsl:variable name="OpeningTitleTags" select="'<p> <b><u>'" />
<xsl:variable name="ClosingTitleTags" select="'</u></b> </p> <p align="left"> </p>'" />
<xsl:variable name="OpeningSectionTags" select="'<p align="left"> <b>'" />
<xsl:variable name="ClosingSectionTags" select="'</b> </p>'" />
<xsl:variable name="OpeningTextTags" select="'<p align="left">'" />
<xsl:variable name="ClosingTextTags" select="'</p> <p align="left">'" />
В моем примере я выяснил, что существует 11 токенов.
- Я знаю, что мой первый токен всегда будет заголовком
- Второй токен всегда будет разделом
- может быть от 1 до n разделов
- Между разделами может быть много строк текста, в этом случае токен будет иметь нулевое значение
У меня возникли проблемы, так как количество токенов не установлено c и будет очень сильно меняться в зависимости от входного отчета.