子轴的上下文项所需的项类型是node();提供的值 "xyz" 是一个原子值
The required item type of the context item for the child axis is node(); the supplied value "xyz" is an atomic value
我有下面的 XML,我正在尝试将每个下面的值与一个变量进行比较,其中多个值由“|”分隔。我想输出与每个组中的值不匹配的变量值。下面是 XML 和 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>
我使用的版本是 XSLT 2.0,如下所示 -
<?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 required item type of the context item for the child axis is node(); the supplied value "Fire" is an atomic value'
如何让它发挥作用?感谢任何解决建议。
谢谢
您正在 xsl:for-each select="tokenize($LOB_Hier, '\|')"
内部使用 xsl:call-template
,即在字符串序列的 for-each
内部(字符串是原子值),因此在您调用的模板中上下文项是一个简单的字符串。但是您假装要处理名为 Group
的子元素,例如xsl:for-each select="Group"
在调用的模板内部,可能是某个输入节点的子元素。
所以在xsl:for-each select="tokenize($LOB_Hier, '\|')"
之前,你需要存储一个节点,例如使用 <xsl:variable name="root-node" select="."/>
的上下文节点并将其作为参数传递给您调用的模板然后使用 $root-node/Group
您想要处理 Group
子节点或者可能更确切地说 $root-node/RegionLOBs/Group
如果我正确阅读了您的文档结构。
您的 xsl:for-each
的上下文是一个原子值,而不是 XML 结构中的节点。因此,当您按名称调用“可重复”模板,然后在其中尝试使用 XPath 时,它会抱怨您不能在字符串上使用 XPath 轴。
您可以创建一个选择 RegionLOBs
元素的变量,然后应用模板选择该变量作为上下文而不是按名称调用。
此外,还有一个问题:<xsl:when test="contains($GroupLOB,$LOB_Hier)">
$LOB_Hier
有一个值序列,因此它会抱怨您不能对 contains()
使用序列。您可以改为将 GoupLOB
标记为 space 并测试值集以查看是否存在交集:<xsl:when test="tokenize($GroupLOB, ' ') = $LOB_Hier">
已应用于您的样式表:
<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>
我有下面的 XML,我正在尝试将每个下面的值与一个变量进行比较,其中多个值由“|”分隔。我想输出与每个组中的值不匹配的变量值。下面是 XML 和 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>
我使用的版本是 XSLT 2.0,如下所示 -
<?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 required item type of the context item for the child axis is node(); the supplied value "Fire" is an atomic value'
如何让它发挥作用?感谢任何解决建议。
谢谢
您正在 xsl:for-each select="tokenize($LOB_Hier, '\|')"
内部使用 xsl:call-template
,即在字符串序列的 for-each
内部(字符串是原子值),因此在您调用的模板中上下文项是一个简单的字符串。但是您假装要处理名为 Group
的子元素,例如xsl:for-each select="Group"
在调用的模板内部,可能是某个输入节点的子元素。
所以在xsl:for-each select="tokenize($LOB_Hier, '\|')"
之前,你需要存储一个节点,例如使用 <xsl:variable name="root-node" select="."/>
的上下文节点并将其作为参数传递给您调用的模板然后使用 $root-node/Group
您想要处理 Group
子节点或者可能更确切地说 $root-node/RegionLOBs/Group
如果我正确阅读了您的文档结构。
您的 xsl:for-each
的上下文是一个原子值,而不是 XML 结构中的节点。因此,当您按名称调用“可重复”模板,然后在其中尝试使用 XPath 时,它会抱怨您不能在字符串上使用 XPath 轴。
您可以创建一个选择 RegionLOBs
元素的变量,然后应用模板选择该变量作为上下文而不是按名称调用。
此外,还有一个问题:<xsl:when test="contains($GroupLOB,$LOB_Hier)">
$LOB_Hier
有一个值序列,因此它会抱怨您不能对 contains()
使用序列。您可以改为将 GoupLOB
标记为 space 并测试值集以查看是否存在交集:<xsl:when test="tokenize($GroupLOB, ' ') = $LOB_Hier">
已应用于您的样式表:
<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>