Here is an excerpt of my input xml. I need to create an exact copy of this xml with only one change – the value of the element <FinancialNumber> should be formatted as a string of 5 characters – for example, in this case 1 should be replaced with “00001”. There are multiple occurrences of this element across the file. Any help would be appreciated.

<SuperRecord>
    <TransmissionData>
        <DocumentID>100</DocumentID>
        <CreatedDateTime>2011-02-22</CreatedDateTime>
    </TransmissionData>
    <ReportingParty>
        <RoutingID>234</RoutingID>
        <ReportedFinancialSummary>
            <FinancialType>DLSubsidized</FinancialAwardType>
            <FinancialYear>2011</FinancialAwardYear>
            <TotalCount>5</TotalCount>
            <TotalReported>13750.00</TotalReportedAward>
            <Index>
        	      <SSN>36523125</SSN>
               <BirthDate>1992-05-19-04:00</BirthDate>
               <LastName>TRU</LastName>
            </Index>
    <TEACH>
        <FinancialYear>2011</FinancialAwardYear>
        [B]<FinancialNumber>1</FinancialAwardNumber>[/B]  
    </TEACH>
</SuperRecord>

Recommended Answers

All 2 Replies

You need something like this:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="1.0">
    <xsl:template match="node()|@*">
        <xsl:copy>
            <xsl:apply-templates select="@*"/>
            <xsl:apply-templates/>
        </xsl:copy>
    </xsl:template>
    <xsl:template match="FinancialNumber">
        <xsl:copy>
            <xsl:number value="." format="00001"/>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>

Cheers, John Bampton

John - It works great. Thanks !!

vt

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.