Reputation: 21
I have the below XML and I am trying to compare the values in under each to a variable with multiple values separated by '|'. I want to output the values from the variable that did not match with the ones in for each group. Below is the XML and XSLT-
<RegionLOBs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:statutorytype="us-stat-2020-annual-stmt-pc"
xmlns:xbrli="http://www.xbrl.org/2001/instance"
xmlns:iso4217="http://www.xe.com/iso4217.htm"
xmlns:stat="urn:www-iasa-org/tempuri">
<Group>
<Region>AL</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherPrivatePassengerAutoLiability OtherCommercialAutoLiability AlliedLines PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>AR</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherPrivatePassengerAutoLiability OtherCommercialAutoLiability AlliedLines PrivateFlood PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>AZ</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherPrivatePassengerAutoLiability OtherCommercialAutoLiability AlliedLines PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>CA</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherCommercialAutoLiability AlliedLines CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery InlandMarine</LOB>
</Group>
<Group>
<Region>CO</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherPrivatePassengerAutoLiability OtherCommercialAutoLiability AlliedLines PrivateFlood PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>CT</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherCommercialAutoLiability AlliedLines CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery InlandMarine</LOB>
</Group>
<Group>
<Region>DC</Region>
<LOB>WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherCommercialAutoLiability CommercialAutoPhysicalDamage Surety</LOB>
</Group>
<Group>
<Region>DE</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability CommercialAutoNoFault OtherCommercialAutoLiability AlliedLines CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery InlandMarine</LOB>
</Group>
<Group>
<Region>GA</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherCommercialAutoLiability AlliedLines CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery InlandMarine</LOB>
</Group>
<Group>
<Region>IA</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ExcessWorkersCompensation ProductsLiability PrivatePassengerAutoNoFault OtherPrivatePassengerAutoLiability OtherCommercialAutoLiability AlliedLines PrivateFlood PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>ID</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherPrivatePassengerAutoLiability OtherCommercialAutoLiability AlliedLines PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>IL</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherPrivatePassengerAutoLiability OtherCommercialAutoLiability AlliedLines PrivateFlood PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>IN</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ExcessWorkersCompensation ProductsLiability OtherPrivatePassengerAutoLiability OtherCommercialAutoLiability AlliedLines PrivateFlood PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>KS</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability PrivatePassengerAutoNoFault OtherPrivatePassengerAutoLiability CommercialAutoNoFault OtherCommercialAutoLiability AlliedLines PrivateFlood PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>KY</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability PrivatePassengerAutoNoFault OtherPrivatePassengerAutoLiability CommercialAutoNoFault OtherCommercialAutoLiability AlliedLines PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>LA</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherCommercialAutoLiability AlliedLines CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>MA</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability CommercialAutoNoFault OtherCommercialAutoLiability AlliedLines PrivateFlood CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery InlandMarine</LOB>
</Group>
<Group>
<Region>MD</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability CommercialAutoNoFault OtherCommercialAutoLiability AlliedLines CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery InlandMarine</LOB>
</Group>
<Group>
<Region>ME</Region>
<LOB>Fire OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherCommercialAutoLiability AlliedLines CommercialAutoPhysicalDamage Surety BoilerAndMachinery InlandMarine</LOB>
</Group>
<Group>
<Region>MI</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability CommercialAutoNoFault OtherCommercialAutoLiability AlliedLines PrivateFlood CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>MN</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability PrivatePassengerAutoNoFault OtherPrivatePassengerAutoLiability CommercialAutoNoFault OtherCommercialAutoLiability AlliedLines PrivateFlood PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>MO</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherPrivatePassengerAutoLiability OtherCommercialAutoLiability AlliedLines PrivateFlood PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>MS</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherCommercialAutoLiability AlliedLines CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery InlandMarine</LOB>
</Group>
<Group>
<Region>MT</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherPrivatePassengerAutoLiability OtherCommercialAutoLiability AlliedLines PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>NC</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherPrivatePassengerAutoLiability OtherCommercialAutoLiability AlliedLines PrivateFlood PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery InlandMarine</LOB>
</Group>
<Group>
<Region>ND</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability PrivatePassengerAutoNoFault OtherPrivatePassengerAutoLiability CommercialAutoNoFault OtherCommercialAutoLiability AlliedLines PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>NE</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherPrivatePassengerAutoLiability OtherCommercialAutoLiability AlliedLines PrivateFlood PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>NH</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherPrivatePassengerAutoLiability OtherCommercialAutoLiability AlliedLines PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>NJ</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability CommercialAutoNoFault OtherCommercialAutoLiability AlliedLines CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery InlandMarine</LOB>
</Group>
<Group>
<Region>NM</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherCommercialAutoLiability AlliedLines PrivateFlood CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery InlandMarine</LOB>
</Group>
<Group>
<Region>NV</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherCommercialAutoLiability AlliedLines CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery InlandMarine</LOB>
</Group>
<Group>
<Region>NY</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability CommercialAutoNoFault OtherCommercialAutoLiability AlliedLines CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery InlandMarine</LOB>
</Group>
<Group>
<Region>OH</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ExcessWorkersCompensation ProductsLiability OtherPrivatePassengerAutoLiability OtherCommercialAutoLiability AlliedLines PrivateFlood PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>OK</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherPrivatePassengerAutoLiability OtherCommercialAutoLiability AlliedLines PrivateFlood PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>OR</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability CommercialAutoNoFault OtherCommercialAutoLiability AlliedLines CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery InlandMarine</LOB>
</Group>
<Group>
<Region>PA</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ExcessWorkersCompensation ProductsLiability CommercialAutoNoFault OtherCommercialAutoLiability AlliedLines PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery InlandMarine</LOB>
</Group>
<Group>
<Region>RI</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherCommercialAutoLiability AlliedLines PrivateFlood CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery InlandMarine</LOB>
</Group>
<Group>
<Region>SC</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherCommercialAutoLiability AlliedLines CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery InlandMarine</LOB>
</Group>
<Group>
<Region>SD</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherPrivatePassengerAutoLiability OtherCommercialAutoLiability AlliedLines PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>TN</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherPrivatePassengerAutoLiability OtherCommercialAutoLiability AlliedLines PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>TX</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherPrivatePassengerAutoLiability CommercialAutoNoFault OtherCommercialAutoLiability AlliedLines PrivateFlood PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery InlandMarine</LOB>
</Group>
<Group>
<Region>UT</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability CommercialAutoNoFault OtherCommercialAutoLiability AlliedLines CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery InlandMarine</LOB>
</Group>
<Group>
<Region>VA</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherCommercialAutoLiability AlliedLines CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery InlandMarine</LOB>
</Group>
<Group>
<Region>WA</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability CommercialAutoNoFault OtherCommercialAutoLiability AlliedLines CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery InlandMarine</LOB>
</Group>
<Group>
<Region>WI</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherPrivatePassengerAutoLiability OtherCommercialAutoLiability AlliedLines PrivateFlood PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>WV</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherCommercialAutoLiability AlliedLines CommercialAutoPhysicalDamage Surety BurglaryAndTheft BoilerAndMachinery InlandMarine</LOB>
</Group>
<Group>
<Region>WY</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability OtherPrivatePassengerAutoLiability OtherCommercialAutoLiability AlliedLines PrivateFlood PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery HomeownersMultiplePeril InlandMarine</LOB>
</Group>
<Group>
<Region>AK</Region>
<LOB>Fire WorkersCompensation OtherLiabilityOccurrence ProductsLiability Surety InlandMarine</LOB>
</Group>
<Group>
<Region>FL</Region>
<LOB>Fire Earthquake WorkersCompensation OtherLiabilityOccurrence OtherLiabilityClaimsMade ProductsLiability CommercialAutoNoFault OtherCommercialAutoLiability AlliedLines CommercialAutoPhysicalDamage Fidelity Surety BurglaryAndTheft BoilerAndMachinery InlandMarine</LOB>
</Group>
<Group>
<Region>VT</Region>
<LOB>Fire WorkersCompensation OtherLiabilityOccurrence ProductsLiability OtherPrivatePassengerAutoLiability OtherCommercialAutoLiability AlliedLines PrivatePassengerAutoPhysicalDamage CommercialAutoPhysicalDamage Surety BoilerAndMachinery</LOB>
</Group>
<Group>
<Region>HI</Region>
<LOB>WorkersCompensation OtherLiabilityOccurrence Surety</LOB>
</Group>
</RegionLOBs>
The version I am using is XSLT 2.0 and looks as below -
<?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" xmlns:wd="urn:com.workday.report/CR_Page_14_EMC"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:statutorytype="us-stat-2020-annual-stmt-pc"
xmlns:xbrli="http://www.xbrl.org/2001/instance" xmlns:iso4217="http://www.xe.com/iso4217.htm"
xmlns:stat="urn:www-iasa-org/tempuri" exclude-result-prefixes="xs wd" version="2.0">
<xsl:output omit-xml-declaration="yes" indent="yes" method="xml"/>
<xsl:variable name="single_quote">
<xsl:text>'</xsl:text>
</xsl:variable>
<xsl:variable name="ampersand">
<xsl:text>&</xsl:text>
</xsl:variable>
<xsl:variable name="LOB_Hier">
<xsl:text>Fire|AlliedLines|MultiplePerilCrop|FederalFlood|PrivateCrop|PrivateFlood|FarmownersMultiplePeril|HomeownersMultiplePeril|CommercialMultiplePerilNonLiabilityPortion|CommercialMultiplePerilLiabilityPortion|MortgageGuaranty|OceanMarine|InlandMarine|FinancialGuaranty|MedicalProfessionalLiability|Earthquake|GroupAccidentAndHealth|CreditAccidentAndHealth|CollectivelyRenewableAccidentAndHealth|NonCancelableAccidentAndHealth|GuaranteedRenewableAccidentAndHealth|NonRenewableForStatedReasonsOnly|OtherAccidentOnly|MedicareTitleXviiiExemptFromStateTaxesOrFees|AllOtherAccidentAndHealth|FederalEmployeesHealthBenefitsPlanPremium|WorkersCompensation|OtherLiabilityOccurrence|OtherLiabilityClaimsMade|ExcessWorkersCompensation|ProductsLiability|PrivatePassengerAutoNoFault|OtherPrivatePassengerAutoLiability|CommercialAutoNoFault|OtherCommercialAutoLiability|PrivatePassengerAutoPhysicalDamage|CommercialAutoPhysicalDamage|Aircraft|Fidelity|Surety|BurglaryAndTheft|BoilerAndMachinery|Credit|International|Warranty</xsl:text>
</xsl:variable>
<xsl:template match="/">
<xsl:for-each select="tokenize($LOB_Hier, '\|')">
<xsl:call-template name="repeatable">
<xsl:with-param name="LOB_Hier" select="tokenize($LOB_Hier,'\|')" />
</xsl:call-template>
</xsl:for-each>
</xsl:template>
<xsl:template name="repeatable" match="RegionLOBs">
<xsl:param name="LOB_Hier"/>
<LOBNotFound>
<xsl:for-each select="Group">
<Region>
<xsl:value-of select="Region"/>
</Region>
<xsl:variable name="GroupLOB" select="LOB"/>
<MissingLOBs>
<xsl:choose>
<xsl:when test="contains($GroupLOB,$LOB_Hier)">
<xsl:text></xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$LOB_Hier"/>
</xsl:otherwise>
</xsl:choose>
</MissingLOBs>
</xsl:for-each>
</LOBNotFound>
</xsl:template>
</xsl:stylesheet>
The error I am getting when I am running this transformation is 'The required item type of the context item for the child axis is node(); the supplied value "Fire" is an atomic value'
How do I make it work? Appreciate any suggestions for resolution.
Thank You
Upvotes: 1
Views: 971
Reputation: 66783
The context of your xsl:for-each
is an atomic value, not a node from the XML structure. So, when you call the "repeatable" template by name, and then inside of it attempt to use an XPath, it is complaining that you can't use an XPath axis on a string.
You could create a variable selecting the RegionLOBs
element and then instead of calling by name, apply-templates selecting that variable as the context.
Additionally, there is an issue with: <xsl:when test="contains($GroupLOB,$LOB_Hier)">
$LOB_Hier
has a sequence of values, so it complains that you cannot use a sequence for contains()
. You could instead tokenize the GoupLOB
by space and test the sets of values to see if there is an intersection: <xsl:when test="tokenize($GroupLOB, ' ') = $LOB_Hier">
Applied to your stylesheet:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wd="urn:com.workday.report/CR_Page_14_EMC"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:statutorytype="us-stat-2020-annual-stmt-pc"
xmlns:xbrli="http://www.xbrl.org/2001/instance" xmlns:iso4217="http://www.xe.com/iso4217.htm"
xmlns:stat="urn:www-iasa-org/tempuri" exclude-result-prefixes="xs wd" version="2.0">
<xsl:output omit-xml-declaration="yes" indent="yes" method="xml"/>
<xsl:variable name="single_quote">
<xsl:text>'</xsl:text>
</xsl:variable>
<xsl:variable name="ampersand">
<xsl:text>&</xsl:text>
</xsl:variable>
<xsl:variable name="LOB_Hier">
<xsl:text>Fire|AlliedLines|MultiplePerilCrop|FederalFlood|PrivateCrop|PrivateFlood|FarmownersMultiplePeril|HomeownersMultiplePeril|CommercialMultiplePerilNonLiabilityPortion|CommercialMultiplePerilLiabilityPortion|MortgageGuaranty|OceanMarine|InlandMarine|FinancialGuaranty|MedicalProfessionalLiability|Earthquake|GroupAccidentAndHealth|CreditAccidentAndHealth|CollectivelyRenewableAccidentAndHealth|NonCancelableAccidentAndHealth|GuaranteedRenewableAccidentAndHealth|NonRenewableForStatedReasonsOnly|OtherAccidentOnly|MedicareTitleXviiiExemptFromStateTaxesOrFees|AllOtherAccidentAndHealth|FederalEmployeesHealthBenefitsPlanPremium|WorkersCompensation|OtherLiabilityOccurrence|OtherLiabilityClaimsMade|ExcessWorkersCompensation|ProductsLiability|PrivatePassengerAutoNoFault|OtherPrivatePassengerAutoLiability|CommercialAutoNoFault|OtherCommercialAutoLiability|PrivatePassengerAutoPhysicalDamage|CommercialAutoPhysicalDamage|Aircraft|Fidelity|Surety|BurglaryAndTheft|BoilerAndMachinery|Credit|International|Warranty</xsl:text>
</xsl:variable>
<xsl:template match="/">
<xsl:variable name="context" select="RegionLOBs"/>
<xsl:for-each select="tokenize($LOB_Hier, '\|')">
<xsl:apply-templates select="$context">
<xsl:with-param name="LOB_Hier" select="tokenize($LOB_Hier,'\|')" />
</xsl:apply-templates>
</xsl:for-each>
</xsl:template>
<xsl:template name="repeatable" match="RegionLOBs">
<xsl:param name="LOB_Hier"/>
<LOBNotFound>
<xsl:for-each select="Group">
<Region>
<xsl:value-of select="Region"/>
</Region>
<xsl:variable name="GroupLOB" select="LOB"/>
<MissingLOBs>
<xsl:sequence select="$LOB_Hier[not(. = tokenize($GroupLOB, ' '))]"/>
</MissingLOBs>
</xsl:for-each>
</LOBNotFound>
</xsl:template>
</xsl:stylesheet>
Upvotes: 2
Reputation: 167716
You are using the xsl:call-template
inside of xsl:for-each select="tokenize($LOB_Hier, '\|')"
, that is, inside of a for-each
over a sequence of strings (strings are atomic values) so in your called template the context item is a simple string. Yet you pretend you want to process child elements named Group
with e.g. xsl:for-each select="Group"
inside of the called template, presumably child elements of some input node.
So before the xsl:for-each select="tokenize($LOB_Hier, '\|')"
, you need to store a node, e.g. the context node with <xsl:variable name="root-node" select="."/>
and pass that on also as a parameter to the template you call to then use $root-node/Group
where you want to process the Group
children or probably rather $root-node/RegionLOBs/Group
if I read your document structure correctly.
Upvotes: 1