Subject: RE: [xsl] Special characters and Transformation From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Fri, 5 May 2006 16:15:33 +0100 |
If you want the TEXT element to be in the http://www.fo.com namespace then you should say so: <xsl:element name="TEXT" namespace="http://www.fo.com"> The xmlns="" has been added because you asked for the TEXT element to be in the null namespace. This code would be a lot more readable if you used literal result elements. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Khorasani, Houman [mailto:Houman.Khorasani@xxxxxxxxxxxx] > Sent: 05 May 2006 16:02 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: RE: [xsl] Special characters and Transformation > > 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ädte zu einer > Größ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@xxxxxxxx] > Sent: 05 May 2006 12:00 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > 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 prifiris : virifiez vos > nouveaux mails, lancez vos recherches et suivez l'actualiti > en temps riel. > Rendez-vous sur http://fr.yahoo.com/set
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Special characters and Tr, Khorasani, Houman | Thread | RE: [xsl] Special characters and Tr, Florent Georges |
RE: [xsl] Special characters and Tr, Khorasani, Houman | Date | RE: [xsl] Special characters and Tr, Florent Georges |
Month |