This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: getting an attribute value through <apply-templates/>


<xsl:apply-templates select="InsClaimsContact">
		<xsl:with-param name="id"
select="InsClaimsContact/@Id"></xsl:with-param>
</xsl:apply-templates>
Hello,

at first I must say, that the above won't work. You will always get the value of the first InsClaimsContact/@Id in document order.

It's bit easier than you think:

<xsl:apply-templates select="InsClaimsContact"/>

<xsl:template match="InsClaimsContact">
<xsl:call-template name="PartyGenInfo"/>
<xsl:call-template name="InjuryDetails"/>
<xsl:call-template name="VehicleInfo">
<xsl:with-param name="id" select="@id"/>
</xsl:call-template>
</xsl:template>

Why not accessing @id from the second template directly? You don't need to pass it to the second template.

Regards,

Joerg


-----Original Message-----
From: CROFT, MICHAEL [mailto:MCROFT@amica.com]
Sent: Wednesday, June 05, 2002 5:23 PM
To: 'xsl-list@lists.mulberrytech.com'
Subject: [xsl] getting an attribute value through <apply-templates/>


I cant get the value of the attribute in this example...

<xsl:apply-templates select="InsClaimsContact">
		<xsl:with-param name="id" select="@id"></xsl:with-param>
</xsl:apply-templates>

<xsl:template match="InsClaimsContact">
		<xsl:param name="id"/>
		<xsl:call-template name="PartyGenInfo"/>
		<xsl:call-template name="InjuryDetails"/>
		<xsl:call-template name="VehicleInfo">
			<xsl:with-param name="id" select="$id"/>
		</xsl:call-template>
</xsl:template>

I need the <InsClaimsContact Id="1+1RB+523"> id attribute to associate the
vehicle info <VehicleInfo ClaimantId="1+1RB+523"> elements elsewhere in the
document...
Here is the xml...

	<InsClaimsContact Id="1+1RB+523">
					<ContactRole>Insured</ContactRole>
					<CoveragesExplained/>
					<EmailAddress/>
	
<EmployersName>Unemployed</EmployersName>
					<FaxPhoneNumber/>
					<FirstName2>Kingsley</FirstName2>
					<Gender/>
					<HomePhoneNumber/>
					<Hospital/>
					<InjuryDescription/>
					<InsuredBy2/>
					<LastName2>Eaton</LastName2>
					<LegalRepresentation/>
					<MaritalStatus/>
					<MedicalCaretreatment/>
					<PositionInVehicle/>
	
<RoleInAccident>Owner</RoleInAccident>
	</InsClaimsContact>
			<VehicleInfo ClaimantId="1+1RB+523">
	
<AirbagDeploymentCheckbox>Y</AirbagDeploymentCheckbox>
							<Anti-theftdevices/>
							<City/>
							<Comments/>
							<County/>
	
<DamageDescription>damage desc</DamageDescription>
	
<EstimatedRepairCost>399</EstimatedRepairCost>
	
<LicenseNumber>64654</LicenseNumber>
							<VIN/>
	
<VehicleColor>Red</VehicleColor>
	
<VehicleMake>Honda</VehicleMake>
	
<VehicleModel>Civic</VehicleModel>
	
<VehicleYear>1999</VehicleYear>
			</VehicleInfo>

When I call the VehicleInfo template, I want to pass the @id of the
<InsClaimsElement> node Im currently processing, so within my VehicleInfo
template, I can associate the correct vehicle elements that have the same id
as the claimant, showing that this is the vehicle that belongs to this
claimant.  There are many vehicles and many claimants in the xml document.

Mike

XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]