xsl-list
[Top] [All Lists]

RE: [xsl] Special characters and Transformation

2006-05-05 08:03:27
Florent,

Many thanks for the examples.  They didn't work by themselves but gave me a 
pretty nice idea:

That's what I created:
<?xml version="1.0" encoding="us-ascii"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
xmlns:f="http://www.fo.com"; exclude-result-prefixes="f">
        <xsl:output method="xml" version="1.0" encoding="us-ascii" 
indent="yes"/>
        
        <xsl:template match="/">
                <xsl:apply-templates select="*"/>
        </xsl:template>
        
        <xsl:template match="f:root">
                <xsl:element name="root" namespace="http://www.fo.com";>
                        <xsl:apply-templates/>
                </xsl:element>
        </xsl:template>
        
        <xsl:template match="f:TEXT">
                <xsl:element name="TEXT">
                        <xsl:element name="Tag">
                                <xsl:value-of select="f:Tag"/>
                        </xsl:element>
                </xsl:element>
        </xsl:template>
</xsl:stylesheet>


It is very close to where I want to be:

<?xml version="1.0" encoding="us-ascii"?>
<root xmlns="http://www.fo.com";>
        <TEXT xmlns="">
                <Tag>Als die ersten St&#228;dte zu einer Gr&#246;&#223;e 
heranwuchsen</Tag>
        </TEXT>
</root>


However how do I get rid of <TEXT xmlns="">? It should be plain <TEXT> in the 
output?

Many thanks for any advice,
Houman




-----Original Message-----
From: Florent Georges [mailto:darkman_spam(_at_)yahoo(_dot_)fr] 
Sent: 05 May 2006 12:00
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] Special characters and Transformation

Florent Georges wrote:

  BTW, I suggest you to take a look at "Literal Result Elements",
"Template Rules", and maybe the "Modified Identity Tranformation
Pattern".

  It is not really explicit.  Starting from your code:

    <xsl:stylesheet
        version="1.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
      <xsl:output method="xml" version="1.0"
                  encoding="us-ascii" indent="yes"/>
      <xsl:template match="/">
        <xsl:element name="root" namespace="http://www.fo.com";>
          <xsl:for-each select="Text">
            <xsl:element name="Text">
              <xsl:element name="tag">
                <xsl:value-of select="tag"/>
              </xsl:element>
            </xsl:element>
          </xsl:for-each>
        </xsl:element>
      </xsl:template>
    </xsl:stylesheet>

"Literal Result Elements" let you write:

    <xsl:stylesheet
        version="1.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
      <xsl:output method="xml" version="1.0"
                  encoding="us-ascii" indent="yes"/>
      <xsl:template match="/">
        <f:root xmlns:f="http://www.fo.com";>
          <xsl:for-each select="root/Text">
            <Text>
              <tag>
                <xsl:value-of select="tag"/>
              </tag>
            </Text>
          </xsl:for-each>
        </f:root>
      </xsl:template>
    </xsl:stylesheet>

"Template Rules" let you write:

    <xsl:stylesheet
        version="1.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
      <xsl:output method="xml" version="1.0"
                  encoding="us-ascii" indent="yes"/>
      <xsl:template match="/">
        <xsl:apply-templates/>
      </xsl:template>
      <xsl:template match="root">
        <f:root xmlns:f="http://www.fo.com";>
          <xsl:apply-templates/>
        </f:root>
      </xsl:template>
      <xsl:template match="Text">
        <Text>
          <xsl:apply-templates select="tag"/>
        </Text>
      </xsl:template>
      <xsl:template match="tag">
        <tag>
          <xsl:value-of select="tag"/>
        </tag>
      </xsl:template>
    </xsl:stylesheet>

and "Modified Identity Tranformation Pattern" let you write:

    <xsl:stylesheet
        version="1.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
      <xsl:output method="xml" version="1.0"
                  encoding="us-ascii" indent="yes"/>
      <xsl:template match="@*|node()">
        <xsl:copy>
          <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
      </xsl:template>
      <xsl:template match="root">
        <f:root xmlns:f="http://www.fo.com";>
          <xsl:apply-templates/>
        </f:root>
      </xsl:template>
      <xsl:template match="Text">
        <xsl:copy>
          <xsl:apply-templates select="tag"/>
        </xsl:copy>
      </xsl:template>
    </xsl:stylesheet>

or (depending on your real usage):

    <xsl:stylesheet
        version="1.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
      <xsl:output method="xml" version="1.0"
                  encoding="us-ascii" indent="yes"/>
      <xsl:template match="@*|node()">
        <xsl:copy>
          <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
      </xsl:template>
      <xsl:template match="root">
        <f:root xmlns:f="http://www.fo.com";>
          <xsl:apply-templates/>
        </f:root>
      </xsl:template>
      <xsl:template match="junk|junk2"/>
    </xsl:stylesheet>

  Regards,

--drkm































        

        
                
___________________________________________________________________________ 
Faites de Yahoo! votre page d'accueil sur le web pour retrouver directement vos 
services préférés : vérifiez vos nouveaux mails, lancez vos recherches et 
suivez l'actualité en temps réel. 
Rendez-vous sur http://fr.yahoo.com/set

--~------------------------------------------------------------------
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>
--~--