[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] Root node with attributes
Subject: Re: [xsl] Root node with attributes From: "Matteo Valdina" <zanfire@xxxxxxxxx> Date: Thu, 18 Oct 2007 21:28:29 +0200 |
Thanks for your answers, the first is more helpful for understand my problem and second has resolved it. ^_^ I have resolved with in this way: New version: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xpath-default-namespace="http://nxtassembler.sourceforge.net/NXT/AsXML.xsd" xmlns="http://nxtassembler.sourceforge.net/NXT/AsXML.xsd" version="2.0"> Old Version <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> Thanks ^_^ Matteo Valdina http://nxtassembler.sf.net http://www.matteozan.it On 10/18/07, Michael Kay <mike@xxxxxxxxxxxx> wrote: > > match="String" matches an element whose local name is "String" and whose > namespace URI is "". By adding > xmlns="http://nxtassembler.sourceforge.net/NXT/AsXML.xsd" to your outermost > element (not the root node!) you have placed all your elements in namespace > "http://nxtassembler.sourceforge.net/NXT/AsXML.xsd", so match="String" will > no longer match. > > In XSLT 2.0 you can add > > xpath-default-namespace="http://nxtassembler.sourceforge.net/NXT/AsXML.xsd" > > to your xsl:stylesheet element so that unprefixed names like String are > interpreted as being in that namespace. > > Michael Kay > http://www.saxonica.com/ > > > -----Original Message----- > > From: Matteo Valdina [mailto:zanfire@xxxxxxxxx] > > Sent: 18 October 2007 08:53 > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > Subject: [xsl] Root node with attributes > > > > Hello, > > > > I'm tring to understand where is my error and a solution for > > this problem: > > When the root node conatins attributes the templates are not > > applied, If the root node don't contain the attributes the > > templates are applied. > > I didn't understand wath is the right way to apply a template > > in a root node with attributes. > > > > Any suggestion are welcome. > > > > Thanks and sorry for my english > > > > Matteo Valdina > > > > Program used: saxon 8 > > > > Stylesheet > > > > <?xml version="1.0" encoding="UTF-8"?> > > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > > version="2.0"> > > > > <xsl:output method="xml" /> > > > > <xsl:template match="*|/"> > > <xsl:copy> > > <xsl:copy-of select="@*"/> > > <xsl:apply-templates /> > > </xsl:copy> > > </xsl:template> > > > > > > <!-- Transform a string to a Array --> > > <xsl:template match="String"> > > <xsl:message>Convert String</xsl:message> > > <Array name="{@name}"> > > <xsl:for-each > > select="string-to-codepoints(@value)"> > > <ArrayData type="UBYTE" value="{.}"/> > > </xsl:for-each> > > <ArrayData type="UBYTE" value="0"/> > > </Array> > > </xsl:template> > > </xsl:stylesheet> > > > > Input file: > > > > <?xml version="1.0" encoding="UTF-8"?> > > <Assembly xmlns="http://nxtassembler.sourceforge.net/NXT/AsXML.xsd"> > > <Dataspace> > > <Data name="a" type="ULONG" value="1"/> > > <String name="ciao" value="Hello!" /> > > </Dataspace> > > </Assembly> > > > > Te aspected result is: > > > > <?xml version="1.0" encoding="UTF-8"?> > > <Assembly xmlns="http://nxtassembler.sourceforge.net/NXT/AsXML.xsd"> > > <Dataspace> > > <Data name="a" type="ULONG" value="1"/> > > <Array name="ciao"><ArrayData type="UBYTE" > > value="72"/><ArrayData type="UBYTE" value="101"/><ArrayData > > type="UBYTE" > > value="108"/><ArrayData type="UBYTE" value="108"/><ArrayData > > type="UBYTE" value="111"/><ArrayData type="UBYTE" > > value="33"/><ArrayData type="UBYTE" value="0"/></Array> > > </Dataspace> > > </Assembly>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Root node with attributes, Michael Kay | Thread | [xsl] Only selectingn first occuran, Dan Vint |
Re: [xsl] Only selectingn first occ, Steve | Date | Re: [xsl] Only selectingn first occ, Dan Vint |
Month |
Keywords