私は xslt を初めて使用し、xml ファイルを動的に生成したため (つまり、ノード名が不明です)、問題に直面しています。
<?xml version="1.0" encoding="UTF-8"?>
<content>
<Source>
<Column1>Name</Column1>
<Column2>Organization Name</Column2>
<SubSource>
<Column1>Name</Column1>
<Column2>Person Name</Column2>
<Column1>Address</Column1>
<Column2>House: E5, Block-G, Road-02</Column2>
<Details>
<Column1>Entry date</Column1>
<Column2>6/6/13 12:04 PM</Column2>
<Column1>height</Column1>
<Column2>153</Column2>
<Column1>weight</Column1>
<Column2>53.5</Column2>
<Column1>temperature</Column1>
<Column2>98.67</Column2>
<Column1>pulse rate</Column1>
<Column2>76</Column2>
<Advices>
<Advice>
<Column1>Title</Column1>
<Column2>Workout</Column2>
<Column1>Location</Column1>
<Column2>In the Park</Column2>
</Advice>
<Advice>
<Column1>Title</Column1>
<Column2>Eating Habit</Column2>
<Column1>Remarks</Column1>
<Column2>Eat Less</Column2>
<Column1>Notes</Column1>
<Column2>Avoid salts</Column2>
</Advice>
</Advices>
</Details>
</SubSource>
</Source>
<Source>
<Column1>Name</Column1>
<Column2>Organization Name</Column2>
<SubSource>
<Column1>Name</Column1>
<Column2>Person Name</Column2>
<Column1>Address</Column1>
<Column2>House: E5, Block-G, Road-02</Column2>
<Details>
<Column1>Entry date</Column1>
<Column2>6/6/13 12:04 PM</Column2>
<Column1>height</Column1>
<Column2>153</Column2>
<Column1>weight</Column1>
<Column2>53.5</Column2>
<Column1>temperature</Column1>
<Column2>98.67</Column2>
<Column1>pulse rate</Column1>
<Column2>76</Column2>
<Advices>
<Advice>
<Column1>Title</Column1>
<Column2>Workout</Column2>
<Column1>Location</Column1>
<Column2>In the Park</Column2>
</Advice>
</Advices>
</Details>
</SubSource>
</Source>
</content>
私はいくつかの xslt アプローチを使用しました。ただし、それらはすべて、必要に応じてデータを表示していません。テーブルが少ないか、適切にフォーマットされていません!!!
以下は私の最善のアプローチでした(最初にすべてのデータを取得したかったので、複数のテーブルの設計は行いませんでした)
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<body>
<table>
<xsl:apply-templates select="content/Source"/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="content/Source">
<xsl:variable name="column" select="content/Source"/>
<tr>
<td>
<xsl:value-of select="Column1"/>
</td>
<td>
<xsl:value-of select="Column2"/>
</td>
</tr>
<xsl:apply-templates select="SubSource"/>
</xsl:template>
<xsl:template match="SubSource">
<tr>
<td>
<xsl:value-of select="Column1"/>
</td>
<td>
<xsl:value-of select="Column2"/>
</td>
</tr>
<xsl:apply-templates select="Details"/>
</xsl:template>
<xsl:template match="Details">
<tr>
<td>
<xsl:value-of select="Column1"/>
</td>
<td>
<xsl:value-of select="Column2"/>
</td>
</tr>
<xsl:apply-templates select="Advices"/>
</xsl:template>
<xsl:template match="Advices">
<xsl:for-each select="Advice">
<tr>
<td>
<xsl:value-of select="Column1"/>
</td>
<td>
<xsl:value-of select="Column2"/>
</td>
</tr>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
出力は次のとおりです。
<table>
<tr>
<td>Name</td>
<td>Organization Name</td>
</tr>
<tr>
<td>Name</td>
<td>Person Name</td>
</tr>
<tr>
<td>Entry date</td>
<td>6/6/13 12:04 PM</td>
</tr>
<tr>
<td>Title</td>
<td>Workout</td>
</tr>
<tr>
<td>Title</td>
<td>Eating Habit</td>
</tr>
<tr>
<td>Name</td>
<td>Organization Name</td>
</tr>
<tr>
<td>Name</td>
<td>Person Name</td>
</tr>
<tr>
<td>Entry date</td>
<td>6/6/13 12:04 PM</td>
</tr>
<tr>
<td>Title</td>
<td>Workout</td>
</tr>
</table>
私の目標は、XML構造と同じテーブルレイアウトを取得することです。
より良い XML 形式に関するアドバイスはいつでも歓迎します!
ありがとうございました