Subject: Re: Do some elements contain strings from other elements?
From: Andrew Welch <andrew.j.welch@xxxxxxxxx>
Date: Thu, 27 Jan 2011 15:33:05 +0000
|
Hi Martin,
On 27 January 2011 15:25, Martin Honnen <Martin.Honnen@xxxxxx> wrote:
> W Charlton wrote:
>
>> I have the following XML.
>> <XML>
>> <SplitNameList>
>> <SplitName>
>> <GivenName>ANDREW</GivenName>
>> <FamilyName>SMITH</FamilyName>
>> </SplitName>
>> <SplitName>
>> <GivenName>DONALD</GivenName>
>> <FamilyName>DUCK</FamilyName>
>> </SplitName>
>> </SplitNameList>
>> <FulNameList>
>> <FullName>DAVID JONES</FullName>
>> <FullName>ANDREW J SMITH</FullName>
>> <FullName>JOHN SMITH</FullName>
>> </FulNameList>
>> </XML>
>>
>> I need to know if any of the Family Names match in the two lists. Either
>> of these two lists could be quite long and this is in the middle of a load
>> of logic. All I need here is a True/False. It doesnt have to be an exact
>> match just as long as it matches the FamilyName.
>
>
> <xsl:template match="SplitNameList">
> <xsl:variable name="test">
> <xsl:for-each select="SplitName/FamilyName">
> <xsl:value-of select="boolean(/XML/FulNameList/FullName[contains(.,
> current())])"/>
> </xsl:for-each>
> </xsl:variable>
> <xsl:if test="contains($test, 'true')">..</xsl:if>
> </xsl:template>
This will return true if the FamilyName is the same as someones first
name, or say some substring of the surname.
Guessing the requirements, I think would want to tokenize the FullName
and then compare the FamilyName to the last item... but cant be sure.
--
Andrew Welch
http://andrewjwelch.com
|