xsl-list
[Top] [All Lists]

Re: Re: Removing line-feeds on a imported tree via document

2005-01-26 09:33:34
Hi Wendell, that seems to work ok, and it seems a very "neat"
solution, elegant, and very general so i can apply it without
regarding the inner structure of my $xmlfile.

I'm going to try it more deeply but it seems i'll use it.

Many thanks.


On Tue, 25 Jan 2005 16:39:16 -0500, Wendell Piez
<wapiez(_at_)mulberrytech(_dot_)com> wrote:
Antonio,

You could use templates:

<xsl:variable name="xmldoc" select="document($xmluri)/Menus/Menu"/>

...
<xsl:apply-templates select="$xmldoc" mode="menu"/>
...

<xsl:template match="*" mode="menu">
   <!-- copies any elements -->
   <xsl:copy>
     <xsl:apply-templates mode="menu"/>
   </xsl:copy>
</xsl:template>

<xsl:template match="text()" mode="menu">
   <!-- trims whitespace -->
   <xsl:value-of select="normalize-space(.)"/>
</xsl:template>

Of course, it works by applying a modification of the identity transform to
the node set you call in.

Cheers,
Wendell

At 02:28 PM 1/25/2005, you wrote:
I've solved my problem but i would like a more elegant solution, if
there is one...

Instead of having
<xsl:variable name="xmldoc" select="document($xmluri)"/>
<...>
<xsl:copy-of select="$xmldoc/Menus/Menu" />

i have now

<xsl:variable name="xmldoc" select="document($xmluri)/Menus/Menu"/>
<...>
<Menu>
<xsl:for-each select="$xmldoc/node()">
        <xsl:copy><xsl:value-of select="normalize-space(.)"/></xsl:copy>
</xsl:for-each>
</Menu>

that do the trick, but somehow i didn't like it very much.

Any more sugestions? Thanks.

On Tue, 25 Jan 2005 19:11:50 +0000, António Mota 
<amsmota(_at_)gmail(_dot_)com> wrote:
Here's another interesting one. In my XSLT i have at some point

<xsl:copy-of select="$xmldoc/Menus/Menu" />

working ok, EXCEPT sometimes i get things like

<Menu>
<Menu_K>X00066</Menu_K>
<Titulo>(Cada Utente)</Titulo>
<MenuData>SELECT Utente_K, NomeLogin
FROM Utente
WHERE UtenteTipo='U'</MenuData>
<MenuTipo>TXT</MenuTipo>
</Menu>

Notice the line breaks on MenuData, that is causing me problems later
on. So i want to get rid of then. I've tryed using

<xsl:copy-of select="normalize-space($xmldoc/Menus/Menu)" />

because i don't understand nothing of this, but soon realise the
error, so i went back and define a template

        <xsl:template match="MenuData">
                <xsl:copy><xsl:value-of
select="normalize-space(.)"/></xsl:copy>
        </xsl:template>

but did no good, cause it seems that only match the original MenuDatas
and not the imported ones.


======================================================================
Wendell Piez                            
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
   Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--