Subject: Re: New XSLT NOT WORKING was Re: [xsl] XSLT to populate a SAML AttributeStatement from an XML From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Sat, 21 Jan 2023 09:59:58 -0000 |
Hi,
I was wondering, is it possible to add a condition to this:
<xsl:template match="/record/adrRecord/*">
for only if the node has no value?
If it is possible, how to do that, and also do you all think this would fix the problem that is happening?
<record> <adrRecord> <PN_ID>1111111</PN_ID> <personnel> <ADM_ORG_CD>urn:NORM:DEPT</ADM_ORG_CD> <DOD_ASSOC_CD>urn:NORM:V01</DOD_ASSOC_CD> </personnel> <enterpriseUser> <entUserRoles>a:b:c</entUserRoles> </enterpriseUser> </adrRecord> </record>
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" B version="2.0" B xmlns:xs="http://www.w3.org/2001/XMLSchema" B xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" B xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" B exclude-result-prefixes="xs">
B <xsl:template match="*"> B B B <xsl:apply-templates/> B </xsl:template>
B <xsl:template match="/"> B B B <saml:AttributeStatement> B B B B B <xsl:apply-templates/> B B B </saml:AttributeStatement> B </xsl:template>
B <xsl:template match="*[not(*)]"> B B B <saml:Attribute Name="{name()}" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> B B B B B <xsl:for-each select="tokenize(.,':')"> B B B B B B B <saml:AttributeValue xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string"> B B B B B B B B B <xsl:value-of select="."/> B B B B B B B </saml:AttributeValue> B B B B B </xsl:for-each> B B B </saml:Attribute> B </xsl:template>
<saml:AttributeStatement xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> B B <saml:Attribute Name="PN_ID" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> B B B B B <saml:AttributeValue xsi:type="xsd:string">1111111</saml:AttributeValue> B B </saml:Attribute> B B <saml:Attribute Name="ADM_ORG_CD" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> B B B B B <saml:AttributeValue xsi:type="xsd:string">urn</saml:AttributeValue> B B B B B <saml:AttributeValue xsi:type="xsd:string">NORM</saml:AttributeValue> B B B B B <saml:AttributeValue xsi:type="xsd:string">DEPT</saml:AttributeValue> B B </saml:Attribute> B B <saml:Attribute Name="DOD_ASSOC_CD" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> B B B B B <saml:AttributeValue xsi:type="xsd:string">urn</saml:AttributeValue> B B B B B <saml:AttributeValue xsi:type="xsd:string">NORM</saml:AttributeValue> B B B B B <saml:AttributeValue xsi:type="xsd:string">V01</saml:AttributeValue> B B </saml:Attribute> B B <saml:Attribute Name="entUserRoles" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> B B B B B <saml:AttributeValue xsi:type="xsd:string">a</saml:AttributeValue> B B B B B <saml:AttributeValue xsi:type="xsd:string">b</saml:AttributeValue> B B B B B <saml:AttributeValue xsi:type="xsd:string">c</saml:AttributeValue> B B </saml:Attribute> </saml:AttributeStatement>
But with so many posts I have lost track of what the input is and what the wanted output is.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: New XSLT NOT WORKING was Re: [x, ohaya ohaya@xxxxxxxx | Thread | Re: New XSLT NOT WORKING was Re: [x, ohaya ohaya@xxxxxxxx |
Re: New XSLT NOT WORKING was Re: [x, ohaya ohaya@xxxxxxxx | Date | Re: New XSLT NOT WORKING was Re: [x, ohaya ohaya@xxxxxxxx |
Month |