XML 構造の変換に問題があります。
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="ceva.xsl"?>
<!-- Edited by XMLSpy® -->
<reports>
<report_head>
<value>product_id</value>
<value>product_name</value>
</report_head>
<report_data>
<value>1</value>
<value>PRODUCT NAME NO 43</value>
</report_data>
<report_data>
<value>2</value>
<value>PRODUCT NAME NO 56</value>
</report_data>
<report_data>
<value>3</value>
<value>PRODUCT NAME NO 65</value>
</report_data>
</reports>
のようなテーブルに
<table>
<tr>
<td>product_id</td>
<td>product_name</td>
</tr>
<tr>
<td>1</td>
<td>PRODUCT NAME NO 43</td>
</tr>
<tr>
<td>2</td>
<td>PRODUCT NAME NO 56</td>
</tr>
<tr>
<td>3</td>
<td>PRODUCT NAME NO 65</td>
</tr>
</table>
ここに私が使用しているXSLがあります:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>Transform a table</h2>
<!--
<table border="1">
<tr>
<xsl:for-each select="reports/report_head/value">
<td><xsl:value-of select="."/></td>
</xsl:for-each>
</tr>
<xsl:for-each select="reports/report_data/value">
<tr>
<td><xsl:value-of select="."/></td>
</tr>
</xsl:for-each>
</table>
-->
<table border="1">
<tr>
<xsl:apply-templates/>
</tr>
</table>
</body>
</html>
</xsl:template>
<!--
<xsl:template match="value">
<tr>
<td><xsl:value-of select="."/></td>
</tr>
</xsl:template>
</table>
-->
<xsl:template match="value">
<td>
<xsl:value-of select="."/>
</td>
</xsl:template>
</xsl:stylesheet>
しかし、待ってください。もっとあります。列がいくつあるかわかりません。典型的なレポートには 10 列ほどあるかもしれませんが、20、30 列以上になることもあるため、xslt はこれを動的に行う必要があります。
を試しfor-each
ましたが、誰かが の使用を提案しましたtemplate
が、結果は得られませんでした。私は今何をしなければなりませんか?
ありがとう。