I XML habenErstellen Tabelle mit Werten von Datensatz mit Hilfe von XSLT im Zusammenhang mit Kopf der Tabelle
<People>
<Person>
<Index>0</Index>
<Attributes>
<Attribute>
<Name>First Name</Name>
<Value>Mike</Value>
</Attribute>
<Attribute>
<Name>Country</Name>
<Value>France</Value>
</Attribute>
<Attribute>
<Name>City</Name>
<Value>Paris</Value>
</Attribute>
</Attributes>
</Person>
<Person>
<Index>1</Index>
<Attributes>
<Attribute>
<Name>First Name</Name>
<Value>Peter</Value>
</Attribute>
<Attribute>
<Name>Country</Name>
<Value>Germany</Value>
</Attribute>
<Attribute>
<Name>Height</Name>
<Value>190</Value>
</Attribute>
</Attributes>
</Person>
<Person>
<Index>2</Index>
<Attributes>
<Attribute>
<Name>First Name</Name>
<Value>Justine</Value>
</Attribute>
<Attribute>
<Name>Hobby</Name>
<Value>Volleyball</Value>
</Attribute>
</Attributes>
</Person>
</People>
sollte meine Ausgabe sieht wie folgt
First Name Country City Height Hobby
Mike France Paris
Peter Germany 190
Justine Volleyball
Kopf der Tabelle unterschiedliche Werte hat aber wie Zellen beziehen von Datensatz zu Spalten?
Ich habe versucht, generate-id() zu verwenden und distinct-values (), aber Werte sind nicht auf eine gute Spalte
Mein Code ist
<xsl:key name="KeyName" match="People/Person/Attributes/Attribute" use="Name" />
<xsl:template match="People">
<table>
<tr>
<xsl:for-each select="Person/Attributes/Attribute[generate-id() = generate-id(key('KeyName', Name)[1])]">
<th> <xsl:value-of select="Name"/> </th>
</xsl:for-each>
</tr>
<xsl:for-each select="Person">
<tr>
<xsl:for-each select="Attributes/Attribute">
<td> <xsl:value-of select="Value"/> </td>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
</xsl:template>
vielleicht Mein falscher Code jemand vorschlagen zu gehen mit falschem Weg.
Mein Vorschlag ist mit generate-ID, um verschiedene Werte in der Kopfzeile zu haben und jeden zu (th) diese Liste merken.
Sortieren jeder Datensatz zu dieser Liste Vergleich Tag-Namen Header Wenn der Name zu vergleichen Tag existiert nicht in der Aufzeichnung der Person wir leeren Wert „“ einfügen
Jetzt Werte (Tag-Wert an nahe stehende mit Kopf) in Person Sortier Wir fügen als Zeile in Tabelle ein.
verwende ich XSLT 2.0, aber Version ist kein Problem
Irgendwelche Ideen?
Gibt es eine kostenlose Online XSLT 2.0 Transofrm-Website, wo dieser Code gute Ausgabe zurückgibt? ich viele Websites überprüft, aber ich habe Fehler, wenn ich den Code zum Beispiel überprüfen diesem Fehler ‚distinct-values ()‘ ist eine unbekannte XSLT-Funktion – ttplanete
Versuchen http://xsltransform.net/ oder http: // xslttest.appspot.com/ (beide scheinen ATM zu sein). –