Re: [xsl] Whitespace question

Subject: Re: [xsl] Whitespace question
From: "Christopher R. Maden" <crism@xxxxxxxxx>
Date: Mon, 17 Sep 2001 23:54:51 -0700
At 23:24 17-09-2001, Ragulf Pickaxe wrote:
Using MSXML 3.0, I have following structure:

<code1>bla bla</code1> <code1>more bla bla</code1>

[...]


Dimitre Novachev wrote something about specifying xml:space="preserve" on an element - how do you do that? and would that serve the job in this case? If not, is there another way to solve the problem (and how)?

To keep that whitespace node, we really need to know what the parent is. The easiest approach is to maintain all whitespace nodes within the parent, if that works. For example, given


<code>
<code1>bla bla</code1> <code1>more bla bla</code1>
</code>

Then you could set xml:space:

<code xml:space="preserve">
<code1>bla bla</code1> <code1>more bla bla</code1>
</code>

and MSXML would give you a string value of <code> of "
bla bla more bla bla
" (note two carriage returns in there, too). But if you need to strip all whitespace except the ones that fall between <code1>s, then your more unwieldy hack is the right direction. (What you need to do is insert the space unless there's a text node already there, which means that there was something other than just space.)


You could also do this with XSLT, without modifying the source XML:

<xsl:preserve-space elements="code"/>

-Chris
--
Christopher R. Maden, Principal Consultant, HMM Consulting Int'l, Inc.
DTDs/schemas - conversion - ebooks - publishing - Web - B2B - training
<URL: http://www.hmmci.com/ > <URL: http://crism.maden.org/consulting/ >
PGP Fingerprint: BBA6 4085 DED0 E176 D6D4  5DFC AC52 F825 AFEC 58DA


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



Current Thread