so I've reached a point where I can't seem to solve the problem myself. I have to transform this XML code:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="xml.xsl"?>
<ansokan>
<forskolaNamn>FakeFörskola</forskolaNamn>
<barn personnummer="1234567890">
<namn>Abc</namn>
<allergi>Räkor</allergi>
<övrigt> </övrigt>
</barn>
<syskon personnummer="1678901234">
<namn>ABCs Bror</namn>
</syskon>
<vardnadshavare personnummer="1456789012">
<fornamn>ABCs</fornamn>
<efternamn>Vårdnadsavare1</efternamn>
<adress>Fake Street</adress>
<telefon hem="031111111" mobil="0731234567"/>
<e-post>Vå[email protected]</e-post>
</vardnadshavare>
<vardnadshavare personnummer="1789012345">
<fornamn>ABCs</fornamn>
<efternamn>Vårdnadsavare2</efternamn>
<adress>FakeFake Street</adress>
<telefon hem="031333333" />
<e-post>Vå[email protected]</e-post>
</vardnadshavare>
</ansokan>
All of these elements and attributes should only output the attribute "Personnumer" in the element "vardnadshavare" and the elements, fornamn and efternamn. like this:
<begaranominkomstuppgift>
<person personnummer="1456789012">
<fornamn>ABCs</fornamn>
<efternamn>Vårdnadsavare1</efternamn>
</person>
<person personnummer="1789012345">
<fornamn>ABCs</fornamn>
<efternamn>Vårdnadsavare2</efternamn>
</person>
</begaranominkomstuppgift>
and this is my XSL code:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="ansokningar">
<begaranominkomstuppgift>
<xsl:for-each select="ansokan/vardnadshavare">
<person>
<xsl:attribute name="personnummer">
<xsl:value-of select="@personnummer"/>
</xsl:attribute>
<fornamn>
<xsl:value-of select="fornamn"/>
</fornamn>
<efternamn>
<xsl:value-of select="efternamn"/>
</efternamn>
</person>
</xsl:for-each>
</begaranominkomstuppgift>
</xsl:template>
</xsl:stylesheet>
Nothing comes out when I test the code. Btw the XML code is validated.
ansokan
while your template matchesansokningar
. – Filburt