1

これを動作させることができません。私はスタックオーバーフローのすべての例を見て、xsltコードを理解しました。しかし、何らかの理由で、それは私のスペース文字を置き換えており、改行ではありません。

<t>Line1 Is here 
Line2 Is another 
Line3 Is some more 
</t> 

XSLTテンプレートは

<xsl:stylesheet version="1.0"  
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
 <xsl:output omit-xml-declaration="yes" indent="yes"/>  
 <xsl:template match="t">  
  <p>  
    <xsl:apply-templates/>  
  </p>  
 </xsl:template>  

 <xsl:template match="text()" name="insertBreaks">  
   <xsl:param name="pText" select="."/>  

   <xsl:choose>  
     <xsl:when test="not(contains($pText, '&#xA;'))">  
       <xsl:copy-of select="$pText"/>  
     </xsl:when>  
     <xsl:otherwise>  
       <xsl:value-of select="substring-before($pText, '&#xA;')"/>  
       <br />  
       <xsl:call-template name="insertBreaks">  
         <xsl:with-param name="pText" select=  
           "substring-after($pText, '&#xA;')"/>  
       </xsl:call-template>  
     </xsl:otherwise>  
   </xsl:choose>  
 </xsl:template>  
</xsl:stylesheet> 

私が得る結果はこれです

Line1 
Is 
here Line2 
Is 
another Line3 
Is 
some 
more 

ここで私の例を参照してくださいhttp://www.xsltcake.com/slices/VsPbib

改行文字ではなく、スペース文字を置き換えているようです。

4

1 に答える 1

1

これはWebkitの既知の問題であり、SafariとChromeに影響します。詳細は次のとおりです。

https://bugs.webkit.org/show_bug.cgi?id=53375

私は少し前に自分で同様の質問をしました:webkitのjavascriptに空白を適切に処理させる方法はありますか?

于 2012-08-03T06:16:33.620 に答える