Я новичок в XSLT.Я пытаюсь отладить проблему XSLT (версия 2.0), которая была написана несколько лет назад.Часть кода XSLT выглядит следующим образом:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
<xsl:output indent="yes" doctype-public="-//W3C//DTD HTML 4.0//EN" use-character-maps="m1"/>
<xsl:character-map name="m1">
<xsl:output-character character="" string=" "/>
</xsl:character-map>
<xsl:strip-space elements="*"/>
...
...
<xsl:template match="PARA|PARASTYLE">
<xsl:choose>
<xsl:when test="@style-name-escaped or (ancestor::TABLE and not(text())) or (not(*) and not(text()))">
<div>
<xsl:if test="@style-name-escaped">
<xsl:attribute name="class">
<xsl:value-of select="@style-name-escaped"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="(ancestor::TABLE and not(text())) or (not(*) and not(text()))">
<xsl:attribute name="style">
<xsl:text>margin-bottom=10pt</xsl:text>
</xsl:attribute>
<xsl:text/>
</xsl:if>
<xsl:apply-templates />
</div>
</xsl:when>
...
..
Этот XSLT преобразует XML в HTML, как показано ниже.В основном это добавление атрибута с самозакрывающимся тегом, как показано ниже
<div class="Normal-Level">
<div style="margin-bottom=10pt"/>
</div>
, что вызывает проблему при отображении в некоторых браузерах из-за самозакрывающегося тега.Что я хочу сделать, так это вывести результат, показанный ниже, с атрибутом, имеющим тег open и close:
<div class="Normal-Level">
<div style="margin-bottom=10pt">
</div>
</div>
Я провел онлайн-исследование, но синтаксис кажется правильным для добавления атрибута.Любая помощь приветствуется