Copy e Copy-de Constructs in XSL |
Copy e copia-delle costruzioni
|
Il copy e copia-delle costruzioni � usato per la copiatura dei nodi. Il copy l'elemento copia soltanto un nodo corrente senza i bambini e gli attributi, mentre il copia-de copies tutto compreso i bambini e gli attributi.
|
XML Source
<source>
<p id="a12"> Compare
<B>these constructs</B>.
</p>
</source>
|
Output
<DIV>
<B>copy-of : </B>
<p id="a12">
Compare <B>these constructs</B>.
</p>
</DIV>
<DIV>
<B>copy : </B>
<p/>
</DIV>
<DIV>
<B>value-of : </B>
Compare these constructs.
</DIV>
|
|
XSL stylesheet
<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match="p">
<DIV>
<B>
<xsl:text>copy-of : </xsl:text>
</B>
<xsl:copy-of select="."/>
</DIV>
<DIV>
<B>
<xsl:text>copy : </xsl:text>
</B>
<xsl:copy/>
</DIV>
<DIV>
<B>
<xsl:text>value-of : </xsl:text>
</B>
<xsl:value-of select="."/>
</DIV>
</xsl:template>
</xsl:stylesheet>
|
|
Us-Attribu-Regolano l'attributo
|
Un xsl: l'elemento della copia pu� avere us-attribu-ha regolato l'attributo. In questo modo gli attributi per l'elemento copiato possono essere specificati. Lo stylesheet 2 di XSL non funziona come previsto. Poich� i expresions negli attributi che si riferiscono agli oggetti chiamati di XSL non sono valutati.
|
XML Source
<source>
<h1>GREETING</h1>
<p>Hello, world!</p>
</source>
|
Output
<h1 align="center" style="color:red">GREETING</h1>
<p align="left" style="color:blue">Hello, world!</p>
|
|
XSL stylesheet
<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match="/">
<xsl:apply-templates select="/source/*"/>
</xsl:template>
<xsl:template match="h1">
<xsl:copy use-attribute-sets="H1">
<xsl:value-of select="."/>
</xsl:copy>
</xsl:template>
<xsl:template match="p">
<xsl:copy use-attribute-sets="P ">
<xsl:value-of select="."/>
</xsl:copy>
</xsl:template>
<xsl:attribute-set name="H1">
<xsl:attribute name="align">center</xsl:attribute>
<xsl:attribute name="style">color:red</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="P">
<xsl:attribute name="align">left</xsl:attribute>
<xsl:attribute name="style">color:blue</xsl:attribute>
</xsl:attribute-set>
</xsl:stylesheet>
|
|
XML Source
<source>
<h1>GREETING</h1>
<p>Hello, world!</p>
</source>
|
Output
Failed to compile stylesheet. 1 error detected.
javax.xml.transform.TransformerConfigurationException: Failed to compile stylesheet. 1 error detected.
at com.icl.saxon.PreparedStyleSheet.prepare(PreparedStyleSheet.java:136)
at com.icl.saxon.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:127)
at Main$TransformerThread.transform(Main.java:105)
at Main$TransformerThread.run(Main.java:80)
at java.lang.Thread.run(Thread.java:536)
|
|
XSLT stylesheet
<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match="/">
<xsl:apply-templates select="/source/*"/>
</xsl:template>
<xsl:template match="*">
<xsl:copy use-attribute-sets="{name(.)}">
<xsl:value-of select="."/>
</xsl:copy>
</xsl:template>
<xsl:attribute-set name="H1">
<xsl:attribute name="align">center</xsl:attribute>
<xsl:attribute name="style">color:red</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="P">
<xsl:attribute name="align">left</xsl:attribute>
<xsl:attribute name="style">color:blue</xsl:attribute>
</xsl:attribute-set>
</xsl:stylesheet>
|
|
|
|
Keywords Copy and Copy-of Constructs in XSL, xsl tutorial, xsl attributes, xsl examples,
xsl cdata, xsl reference, xsl example, xsl elements, xsl tags, xsl tutorials,
xsl functions, xsl attribute, xsl name, xsl syntax, xsl variable, w3schools xsl,
xsl dtd, xsl namespace, xsl count, xsl xpath, xsl javascript, xsl element,
xsl text, xsl document, xsl entity, xsl sort, xsl css, xsl doctype
|