Subject: [xsl] problem with key From: "Albright, Jim jim_albright@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Mon, 12 Apr 2021 04:08:27 -0000 |
I am trying to upconvert from a flat-file. After I get it into XML form I try to add hierarchy using "key". ------------- OUTPUT ------------- I get NO results from <SubPossibilities> <xsl:copy select="key('SemanticDomainByParent', '$parentSD')"/> </SubPossibilities> so output looks like <SubPossibilities/> So what am I doing wrong? Starting with this XML ------------- XML input ------------- ... <Possibilities> <CmSemanticDomain level="1" sd="1" parent="" guid="I63403699-07C1-43F3-A47C-069D6E4316E5"> <line tag="sd">Universe, creation</line> <line tag="gd">I63403699-07C1-43F3-A47C-069D6E4316E5</line> </CmSemanticDomain> <CmSemanticDomain level="2" sd="1.1" parent="1" guid="I999581C4-1611-4ACB-AE1B-5E6C1DFE6F0C"> <line tag="sd">Sky</line> <line tag="gd">I999581C4-1611-4ACB-AE1B-5E6C1DFE6F0C</line> </CmSemanticDomain> <CmSemanticDomain level="3" sd="1.1.1" parent="1.1" guid="IDC1A2C6F-1B32-4631-8823-36DACC8CB7BB"> <line tag="sd">Sun</line> <line tag="gd">IDC1A2C6F-1B32-4631-8823-36DACC8CB7BB</line> </CmSemanticDomain> <CmSemanticDomain level="4" sd="1.1.1.1" parent="1.1.1" guid="I1BD42665-0610-4442-8D8D-7C666FEE3A6D"> <line tag="sd">Moon</line> <line tag="gd">I1BD42665-0610-4442-8D8D-7C666FEE3A6D</line> </CmSemanticDomain> <CmSemanticDomain level="4" sd="1.1.1.2" parent="1.1.1" guid="IB044E890-CE30-455C-AEDE-7E9D5569396E"> <line tag="sd">Star</line> <line tag="gd">IB044E890-CE30-455C-AEDE-7E9D5569396E</line> </CmSemanticDomain> <CmSemanticDomain level="4" sd="1.1.1.3" parent="1.1.1" guid="IA0D073DF-D413-4DFD-9BA1-C3C68F126D90"> <line tag="sd">Planet</line> <line tag="gd">IA0D073DF-D413-4DFD-9BA1-C3C68F126D90</line> </CmSemanticDomain> ... ------------- XSL ------------- ... <xsl:key name="SemanticDomainByParent" match="CmSemanticDomain" use="@parent" /> <xsl:template match="CmSemanticDomain"> <CmSemanticDomain> <xsl:apply-templates select="@* | node()"/> <xsl:apply-templates select="key('SemanticDomainByParent',@sd)"/> </CmSemanticDomain> </xsl:template> <xsl:template match="line[@tag='gd']"> <xsl:variable name="parentSD" select="parent::*/@parent"/> <SubPossibilities> <xsl:copy select="key('SemanticDomainByParent', '$parentSD')"/> </SubPossibilities> </xsl:template> <!-- identity transform --> <xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </xsl:template> ------------- Desired OUTPUT ------------- ... <Possibilities> <CmSemanticDomain level="1" sd="1" parent="" guid="I63403699-07C1-43F3-A47C-069D6E4316E5"> <line tag="sd">Universe, creation</line> <SubPossibilities> <CmSemanticDomain level="2" sd="1.1" parent="1" guid="I999581C4-1611-4ACB-AE1B-5E6C1DFE6F0C"> <line tag="sd">Sky</line> <SubPossibilities> <CmSemanticDomain level="3" sd="1.1.1" parent="1.1" guid="IDC1A2C6F-1B32-4631-8823-36DACC8CB7BB"> <line tag="sd">Sun</line> <SubPossibilities> <CmSemanticDomain level="4" sd="1.1.1.2" parent="1.1.1" guid="IB044E890-CE30-455C-AEDE-7E9D5569396E"> <line tag="sd">Star</line> </CmSemanticDomain> <CmSemanticDomain level="4" sd="1.1.1.3" parent="1.1.1" guid="IA0D073DF-D413-4DFD-9BA1-C3C68F126D90"> <line tag="sd">Planet</line> </CmSemanticDomain> ... </SubPossibilities> </CmSemanticDomain> </SubPossibilities> </CmSemanticDomain> </SubPossibilities> </CmSemanticDomain> </Possibilities> Jim Albright Wycliffe Bible Translators 704-562-1529
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Using Lookup file in XSLT, Martin Honnen martin | Thread | Re: [xsl] problem with key, Dimitre Novatchev dn |
Re: [xsl] Using Lookup file in XSLT, Martin Honnen martin | Date | Re: [xsl] problem with key, Dimitre Novatchev dn |
Month |