1
非常に単純なXMLファイルを非常に単純なHTMLテーブルにフォーマットしようとしています。XMLをHTMLテーブルとしてフォーマットする
XSLTで外部CSSスタイルシートを使用する必要があります。私が遭遇している問題は、要素を特定の行に分割していないことです。たとえば、1行のすべての曜日要素など、すべてを1行に入れています。私が見た他の例は、それらをすべて個々の行に並べ替えるので、私はちょっとばかげたことをしました。
ありがとうございます!
xml:これは一部に過ぎません。 5つのレコードがあります。
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="forecast.xsl"?>
<forecast week="June 1st 2016"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="forecast.xsd">
<day>
<Weekday>Monday</Weekday>
<HiTemp>84</HiTemp>
<LoTemp>74</LoTemp>
<Wind>SSE 18 mph</Wind>
<Humidity>59%</Humidity>
<DewPoint>68 degrees</DewPoint>
<Visibility>10 miles</Visibility>
<UVIndex>4 of 10</UVIndex>
<Sunrise>6:01 AM</Sunrise>
<Sunset>8:49 PM</Sunset>
</day>
<day>
<Weekday>Tuesday</Weekday>
<HiTemp>89</HiTemp>
<LoTemp>77</LoTemp>
<Wind>NW 6 mph</Wind>
<Humidity>68%</Humidity>
<DewPoint>54 degrees</DewPoint>
<Visibility>8 miles</Visibility>
<UVIndex>6 of 10</UVIndex>
<Sunrise>6:03 AM</Sunrise>
<Sunset>8:51 PM</Sunset>
</day>
</forecast>
と私のXSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<title>Weekly Forecast</title>
<link href="forecast.css"
rel="stylesheet" />
</head>
<body>
<h3>weekly Forecast</h3>
<table border="1">
<tr>
<th>Weekday</th>
<th>High Temp</th>
<th>Low Temp</th>
<th>Wind</th>
<th>Humidity</th>
<th>DewPoint</th>
<th>Visibility</th>
<th>UVIndex</th>
<th>Sunrise</th>
<th>Sunset</th>
</tr>
<tr>
<xsl:for-each select="forecast/day">
<td><xsl:value-of select="Weekday"/></td>
<td><xsl:value-of select="HiTemp"/></td>
<td><xsl:value-of select="LoTemp"/></td>
<td><xsl:value-of select="Wind"/></td>
<td><xsl:value-of select="Humidity"/></td>
<td> <xsl:value-of select="DewPoint"/></td>
<td><xsl:value-of select="Visibility"/></td>
<td><xsl:value-of select="UVIndex"/></td>
<td><xsl:value-of select="Sunrise"/></td>
<td><xsl:value-of select="Sunset"/></td>
</xsl:for-each>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
とCSSはかなり基本的なものです:
問題が<xsl:for-each>
の周りにある
<tr>
と
</tr>
タグが
を内側に属していることである
body{background-color:teal;
margin:0 auto;
}
table {border: 3px solid black;}
th {font-weight:bold;
color:white;
font-size:14px;
display:block;}
tr {color:white;
font-size:14px;
display:block;}