开发者

XSL ignores my whitespace even with the <xsl:text> tag

I'm making a header in my XSL code that includes multiple fields of information, i.e. "Name: Bob Birthdate: January 1 1900," etc. I enclosed them in tags as such:

<xsl:text>    Gender: Male    </xsl:text> 

But on the page, the whitespace around Gender/Male is being ignored. Is there something I'm missing?

开发者_如何学C

Thanks in advance.


You may need the to use...

<xsl:text xml:space="preserve">    Gender: Male    </xsl:text>


If you want to output a text file you should specify an <xsl:output method="text"/> as a child of the <xsl:stylesheet> element.

When treating output as HTML the parser might pack your spaces, if HTML output with non-breaking spaces is what you want you can use the &#160; non-breaking space entity (note that &nbsp; might not work since it's not an XML entity, unless you declare it yourself).


This not a strict XSLT question, as XSLT does not eat your white space. This transformation

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="/">
    <foo>
      <xsl:text>    Gender: Male    </xsl:text>
    </foo>
  </xsl:template>
</xsl:stylesheet> 

gives

<?xml version="1.0" encoding="UTF-8"?>
<foo>    Gender: Male    </foo>

You are using HTML as the output? Then use non breaking space for whitespace.


Just use

  &#160;Gender: Male&#160; 

it represent whitespace in xsl like

 &nbsp;Gender:Male&nbsp; 

in html


You need to add &nbsp; instead of spaces. To get more than 1 space

<xsl:text><![CDATA[&nbsp;&nbsp;&nbsp; Gender: Male &nbsp;&nbsp;&nbsp;]]></xsl:text>

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜