代码之家  ›  专栏  ›  技术社区  ›  Rose

xslt:如何避免在HTML中的属性中添加自结束标记

  •  0
  • Rose  · 技术社区  · 6 年前

    我是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="&#141;" 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>
    

    由于自动关闭标记,导致在某些浏览器中显示时出现问题。我要做的是输出如下所示,属性具有“打开”和“关闭”标记:

       <div class="Normal-Level">
          <div style="margin-bottom=10pt">
          </div>
        </div>
    

    我在网上做了研究,但是语法似乎适合添加属性。谢谢你的帮助

    1 回复  |  直到 6 年前
        1
  •  1
  •   michael.hor257k    6 年前

    尝试添加 method="html" xsl:output 元素。