所以我已經達到了我自己無法解決問題的程度。 我必須變換該XML代碼:用XSL轉換XML
<?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="16789">
<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="1789">
<fornamn>ABCs</fornamn>
<efternamn>Vårdnadsavare2</efternamn>
<adress>FakeFake Street</adress>
<telefon hem="031333333" />
<e-post>Vå[email protected]</e-post>
</vardnadshavare>
</ansokan>
所有這些元素和屬性的應該只輸出屬性「Personnumer」在元件「vardnadshavare」和元件,fornamn和efternamn。像這樣:
<begaranominkomstuppgift>
<person personnummer="1456789012">
<fornamn>ABCs</fornamn>
<efternamn>Vårdnadsavare1</efternamn>
</person>
<person personnummer="1789">
<fornamn>ABCs</fornamn>
<efternamn>Vårdnadsavare2</efternamn>
</person>
</begaranominkomstuppgift>
,這是我的XSL代碼:
<?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>
沒有出來時,我對代碼進行測試。順便說一句,XML代碼是有效的。
你的根元素是'ansokan',而你的模板匹配' ansokningar'。 – Filburt