[Home] [By Thread] [By Date] [Recent Entries]



This isn't really an xml-dev question, more xsl-list, but anyway...


  select="document('C:\Inetpub\wwwroot\development\shelco_company_registra
  tion_form\xml\field.xml')/root"/>

document takes a URI not a windows file path so that should be

select="document('file:///C:/Inetpub/wwwroot/development/shelco_company_registration_form/xml/field.xml')/root"/>

You don't want to do this:

      <xsl:template match="*">
            <xsl:if test="name() = 'field'">
                 <testing />
                      <xsl:apply-templates ***** call the field template!!

Firstly testing with name() is unsafe (if you are using namespaces) and
probably inefficient you would use test="self::field" to test for a
field element but this is exactly what teh xslt processor does when it
is matching templates there is no need to re-implement this with if
tests at the xsl level.

            <xsl:element name="{name()}">
easier to use <xsl:copy here

               <xsl:for-each select="@*">
                    <xsl:attribute name="{name()}">
                         <xsl:value-of select="."/>
                    </xsl:attribute>
               </xsl:for-each>


That is <xsl:copy-of select="@*"/>


So you just need

<xsl:template match="*">
 <xsl:copy>
       <xsl:copy-of select="@*"/>
       <xsl:apply-templates />
  </xsl:copy>
</xsl:template>

 
This template will fire for all elements except field, your field
template will be used for field elements as that has a higher default
priority.

David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member