Я новичок в xslt и столкнулся с проблемой при попытке конвертировать xml в Json.Основная проблема в том, что я не могу обновить переменные внутри цикла. Итак, я должен разобраться с множителями. Есть мысли?Спасибо!
ввод xml:
<attributes>
<name>uid</name>
<values>user123</values>
<name>mail</name>
<values>xxxxxxxxxxxxxx</values>
<name>ismemberof</name>
<values>cn=Partner xxxxxxxxxxxxxxxxxx dc=com</values>
<values>cn=Partner zzzzzzzzzzzzzzzzzzz dc=com</values>
<values>ccn=Partner 444444444444444 dc=com</values>
<values>cn=MANSFIELD MEDICAL,teste teste</values>
<values>cn=Partner Portal - hthththththththt</values>
<name>dn</name>
<values>uid=user123,ou=people,dc=tttt,dc=com</values>
<name>telephoneNumber</name>
<name>objectClass</name>
<values>person</values>
<values>inetorgperson</values>
<values>dspswuser</values>
<values>top</values>
</attributes>
Мой xslT-код:
<xsl:template match="/">
<xsl:for-each select = "attributes/*">
<xsl:if test = "(name(.) = 'name')">
<xsl:value-of select="concat(text(),':["')" />
</xsl:if>
<xsl:if test = "(name(.) = 'values')">
<xsl:value-of select="concat(text(),'"],')" />
</xsl:if>
</xsl:for-each>
</xsl:template>
Ожидаемый результат:
{
"username": "bjensen",
"realm": "/",
"uid": [
"bjensen"
],
"mail": [
"bjensen@example.com"
],
"sn": [
"bjensen"
],
"dn": [
"uid=bjensen,ou=people,dc=openam,dc=forgerock,dc=org"
],
"objectclass": [
"person",
"sunIdentityServerLibertyPPService",
"sunFederationManagerDataStore",
"top"
],
"universalid": [
"id=bjensen,ou=user,dc=openam,dc=forgerock,dc=org"
]
}