Solved

[XSLT] How to add a non-breaking space to HTML output?

Posted on 2003-12-02
4
1,774 Views
Last Modified: 2008-03-06
Okay, simple problem. I have an XML file linked to an XSL file. The XML file will be opened in Internet Explorer 6 and this shoudl result in a client-side transformation of a small data file with a small transformation file into what would be a very large HTML page. The HTML output is quite big because of the use of colors, tables and lots of formatted fields. And because the internet connection and server are a bit slow while the clients are pretty fast, I need this client-side transformation. Fortunately, IE does this automatically.
However, there will also be some users who need the XML file to be translated server-side because they use either a different webbrowser or an older webbrowser that doesn't support XML. These users might not even have any Unicode support on their system.

However, my problem is that I need   tags in the HTML output too. If I just use   then IE will not transform my XML file but just report an error. I tried to use   but IE then generates   instead of the required blank space. I could use   and this seems to give the correct result but it's still not exactly what I need.
Sure, the HTML output will convert   to a NBSP but it generates it as a unicode character and not as the   tag. I can't allow the NBSP to be hardcoded in the output as an Unicode character because some people would just see ' ' in their output. Yes, a funny A followed by a space... So, for those users who need the pre-translated file I need to have   in my output file.

Now, how to do this with XSLT??? How to keep unicode out of my output file?
0
Comment
Question by:Wim ten Brink
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 28

Expert Comment

by:sybe
ID: 9857402
the xml for non-breaking space is   
i have never seen the problem as you describe. but you use " " maybe that makes the difference?
0
 
LVL 17

Author Comment

by:Wim ten Brink
ID: 9858056
The problem is quite simple, actually. I can't generate the &nnbsp; tag in any way by using XSLT... IE hates it when I use   in my xslt file since it considers it an illegal tag. And according to the XML standard IE is right too.   is not allowed. But I want either   or &30160; to be generated in my output, instead of the NBSP character. And that's my problem.
It is fun, btw. If I use & then the output will contain & instead of &. But when I use   the translator fails. In other words, it's not translated correctly. It just happens to be okay when the webbrowser can handle unicode characters...
0
 
LVL 9

Accepted Solution

by:
sparkplug earned 125 total points
ID: 9858770
Hi,

Make sure you have <xsl:output method="html"/> at the top of your XSLT (under the <xsl:stylesheet>) tag. You can then use &#160; or &#xA0; and these will be translated to &nbsp;

Alternatively you can use &nbsp; in your XSLT after putting <!DOCTYPE xsl:stylesheet [<!ENTITY nbsp "&#160;">]> at the top of the file.

Another less elegant solution would be to use <xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text> or <xsl:text disable-output-escaping="yes">&amp;#160;</xsl:text>.

For more info and explanations see this FAQ: http://www.dpawson.co.uk/xsl/sect2/nbsp.html

Hope this helps,

>S'Plug<
0
 
LVL 17

Author Comment

by:Wim ten Brink
ID: 9865744
I have to admit, <xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text> isn't pretty but does the trick quite well. :) Thanks.
0

Featured Post

Want Experts Exchange at your fingertips?

With Experts Exchange’s latest app release, you can now experience our most recent features, updates, and the same community interface while on-the-go. Download our latest app release at the Android or Apple stores today!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction In my previous article (http://www.experts-exchange.com/Microsoft/Development/MS-SQL-Server/SSIS/A_9150-Loading-XML-Using-SSIS.html) I showed you how the XML Source component can be used to load XML files into a SQL Server database, us…
Create a Windows 10 custom Image with custom task bar and custom start menu using XML for deployment.
Monitoring a network: how to monitor network services and why? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the philosophy behind service monitoring and why a handshake validation is critical in network monitoring. Software utilized …
If you’ve ever visited a web page and noticed a cool font that you really liked the look of, but couldn’t figure out which font it was so that you could use it for your own work, then this video is for you! In this Micro Tutorial, you'll learn yo…

636 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question