0

XSLT 中に、Saxon が XSL 要素間に空白を使用する方法と理由を知りたいです。上記の動作によって影響を受ける可能性のある例を次に示します。

XSLT中にSaxonがXSL要素間に空白を使用する方法と理由は?

<div style="display:none;">
    <xsl:choose>
      <xsl:when test="true">
        <xsl:attribute name="id">
           <xsl:choose>
              <xsl:when>
               etc ec
              </xsl:when>
              <xsl:otherwise></xsl:otherwise>
            </xsl:choose>
          </xsl:attribute>
         </xsl:when>
         <xsl:otherwise></xsl:otherwise>

</div>

<divと の間の空白<xsl:choose>によって、次のエラーが発生する可能性があるのはなぜですか。

XSLT attribute node (id) cannot be created after the children of the containing element
4

1 に答える 1

1

空白だけを含むテキストノード(例のように)は効果がありません(解析の非常に早い段階で削除されます)。ただし、スタイルシートの親要素に属性xml:space ="preserve"がある場合を除きます。 。(xml:space = "preserve"をスタイルシートに入れることは、このような理由でほとんどの場合悪いニュースですが、人々は時々それを行い、ここで問題を説明する可能性があります。)

もう1つの可能性(私は12年に1回しか見たことがありません...)は、空白のように見えるものがそうではないということです。たとえば、空白ではないスペースや幅がゼロのスペースが含まれている場合があります。これらは白く見えますが、正式には空白ではありません。

于 2012-09-06T22:50:50.903 に答える