XMLとXSLを使用してHTML出力ファイルを作成する方法をまだ学んでおり、stackoverflowのおかげで大幅に改善されました。
自動生成されたXMLファイルがありますが、新しいXMLが作成されるたびにXSLTファイルがどこにあるかをXMLファイルに伝えることができません。
ユーザーが開いたときに、CSSまたはJavascriptがHTMLに含まれているのと同じように、HTMLがXMLおよびXSLTを「参照」し、目的のHTML結果として出力するHTMLファイルを作成する方法はありますか。
ありがとう、ロビン
これは、使用するプログラムから生成されたXMLファイルです...
<Root>
<Ticket>
<TicketStart Date="2012-10-22" />
<Clubcard Opcode="96" Function="27" CardAcc="1" QualSpendInfo="0" SchemeNo="40" CardNo="1042540000026" PointsToDate="0" RedemptionValue="0" CustomerUpdateDate="000000" QualSpent="0" Date="2012-10-22" />
<ClubcardPoints Opcode="96" Function="28" SchemeNo="40" PromNo="0" CardNo="1042540000026" QualSpend="30005" PointSpend="0" Points="6" BonusPoints="0" PromCount="0" Date="2012-10-22" />
<Clubcard Opcode="96" Function="27" CardAcc="1" QualSpendInfo="1" SchemeNo="40" CardNo="1042540000026" PointsToDate="0" RedemptionValue="0" CustomerUpdateDate="000000" QualSpent="30005" Date="2012-10-22" />
<TicketEnd Date="2012-10-22" />
</Ticket>
<Ticket>
<TicketStart Date="2012-10-22" />
<TicketEnd Date="2012-10-22" />
</Ticket>
<Events>
</Events>
<Ticket>
<TicketStart Date="2012-10-22" />
<Clubcard Opcode="96" Function="27" CardAcc="1" QualSpendInfo="0" SchemeNo="40" CardNo="1042540000057" PointsToDate="0" RedemptionValue="0" CustomerUpdateDate="000000" QualSpent="0" Date="2012-10-22" />
<ClubcardPoints Opcode="96" Function="28" SchemeNo="40" PromNo="0" CardNo="1042540000057" QualSpend="18025" PointSpend="0" Points="3" BonusPoints="0" PromCount="0" Date="2012-10-22" />
<Clubcard Opcode="96" Function="27" CardAcc="1" QualSpendInfo="1" SchemeNo="40" CardNo="1042540000057" PointsToDate="0" RedemptionValue="0" CustomerUpdateDate="000000" QualSpent="18025" Date="2012-10-22" />
<TicketEnd Date="2012-10-22" />
</Ticket>
<Events>
</Events>
</Root>
`
現在、これをXMLファイルの先頭に配置する必要があります
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="XSLnice.xsl"?>
XSLファイルは次のようになります...
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<head>
<title>StoreLine Loyalty Sales</title>
</head>
<body>
<br/>
<br/>
<br/>
<b>Loyal Customers</b>
<br/>
<br/>
<table width="100%" border="3">
<THEAD>
<TR bgcolor="RGB(0, 204, 51)">
<TD width="25%">
<font color="white"><B>Account Number</B></font>
</TD>
<TD width="25%">
<font color="white"><B>Points</B></font>
</TD>
<TD width="25%">
<font color="white"><B>Date</B></font>
</TD>
<TD width="25%">
<font color="white"><B>Qualified Spent</B></font>
</TD>
</TR>
</THEAD>
<TBODY>
<xsl:for-each select="Root/Ticket/ClubcardPoints">
<TR>
<TD width="25%"><xsl:value-of select="@CardNo" /></TD>
<TD width="25%"><xsl:value-of select="@Points" /></TD>
<TD width="25%"><xsl:value-of select="@Date" /></TD>
<TD width="25%"><xsl:value-of select="format-number(@QualSpend div 100,'R#.##')" /></TD>
</TR>
</xsl:for-each>
</TBODY>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
`
これらのファイルを同じフォルダーに置いて、XMLファイルをダブルクリックすると、XMLに必要な値のわかりやすいレポートが表示されます。したがって、1つのHTMLファイルをダブルクリックするだけで、新しいXMLが同じフォルダーに配置されるたびに、HTMLはXMLを検索し、XSLをスタイルシートとして使用して表示します。毎回手動でXMLを更新し、XSLを使用するように指示する必要はありません。
また、「CardNo」をグループ化して、使用回数、合計「ポイント」、「適格額」を報告しましたが、失敗しました。統合レポートのように、この長いエントリリストの代わりに。
どうもありがとう...
推奨される出力ファイルは次のとおりです...
<THEAD>
<TR bgcolor="RGB(0, 204, 51)">
<TD width="25%"><font color="white"><B>Account Number</B></font></TD>
<TD width="25%"><font color="white"><B>Total Points</B></font></TD>
<TD width="25%"><font color="white"><B>Date</B></font></TD>
<TD width="25%"><font color="white"><B>Total Qualified Spent</B></font></TD>
</TR>
</THEAD>
<TBODY>
<TR>
<TD width="25%">1042540000002</TD>
<TD width="25%">100</TD>
<TD width="25%">2012-10-22</TD>
<TD width="25%">R750.32</TD>
</TR>