At 2003-10-09 11:19 -0500, Uslu, Cihan Y (MED) wrote:
Following is the XML snippet that I'm working with;
...
What I want to do is; to count the item element and add this value in
front of title attribute and copy the rest of the information as it is.
What is the best way of doing this?
Using <xsl:number> in the parent's context.
I hope the following helps.
............... Ken
T:\uslu>type uslu.xml
<questestinterop>
<item title="TT-1003_Mod01_Objective01_Title:"
ident="5112114679096874">
<itemmetadata>
<qmd_itemtype>Multiple Choice</qmd_itemtype>
<qmd_status>Normal</qmd_status>
<qmd_toolvendor>Vendor</qmd_toolvendor>
<qmd_topic>Biomed Training\TT-1003</qmd_topic>
</itemmetadata>
</item>
<item title="TT-1003_Mod01_Objective01_Title:"
ident="5112114679096874">
<itemmetadata>
<qmd_itemtype>Multiple Choice</qmd_itemtype>
<qmd_status>Normal</qmd_status>
<qmd_toolvendor>Vendor</qmd_toolvendor>
<qmd_topic>Biomed Training\TT-1003</qmd_topic>
</itemmetadata>
</item>
....
....
</questestinterop>
T:\uslu>type uslu.xsl
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="item/@title">
<xsl:attribute name="title">
<xsl:for-each select="..">
<xsl:number format="000"/>
</xsl:for-each>
<xsl:text>_</xsl:text>
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:template>
</xsl:stylesheet>
T:\uslu>saxon uslu.xml uslu.xsl
<?xml version="1.0" encoding="utf-8"?><questestinterop>
<item title="001_TT-1003_Mod01_Objective01_Title:"
ident="5112114679096874">
<itemmetadata>
<qmd_itemtype>Multiple Choice</qmd_itemtype>
<qmd_status>Normal</qmd_status>
<qmd_toolvendor>Vendor</qmd_toolvendor>
<qmd_topic>Biomed Training\TT-1003</qmd_topic>
</itemmetadata>
</item>
<item title="002_TT-1003_Mod01_Objective01_Title:"
ident="5112114679096874">
<itemmetadata>
<qmd_itemtype>Multiple Choice</qmd_itemtype>
<qmd_status>Normal</qmd_status>
<qmd_toolvendor>Vendor</qmd_toolvendor>
<qmd_topic>Biomed Training\TT-1003</qmd_topic>
</itemmetadata>
</item>
....
....
</questestinterop>
T:\uslu>
--
Next public US delivery: 3-day XSLT/2-day XSL-FO 2003-10-13
Next public European delivery: 3-day XSLT/2-day XSL-FO 2003-11-??
Instructor-led on-site corporate, government & user group training
for XSLT and XSL-FO world-wide: please contact us for the details
G. Ken Holman mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995)
ISBN 0-13-065196-6 Definitive XSLT and XPath
ISBN 0-13-140374-5 Definitive XSL-FO
ISBN 1-894049-08-X Practical Transformation Using XSLT and XPath
ISBN 1-894049-11-X Practical Formatting Using XSL-FO
Member of the XML Guild of Practitioners: http://XMLGuild.info
Male Breast Cancer Awareness http://www.CraneSoftwrights.com/s/bc
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list