我仍然在學習如何使用XML和XSL創建HTML輸出文件,並且由於使用了stackoverflow而得到了很大改進。在HTML文件中鏈接XML和XSLT文件
我有一個自動生成的XML文件,但我無法告訴XML文件每次創建新XML時XSLT文件在哪裏。
有沒有辦法創建一個HTML文件,當用戶打開它時,HTML將對XML和XSLT「href」並將其輸出爲預期的HTML結果,與CSS或Javascript包含在一起的方式相同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文件的開始
XSL文件看起來像th是...
<?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值的友好報告。因此,如果我只需雙擊一個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>
您可以提供用於手動鏈接到XSLT的XML代碼。那麼我們可能會幫助更多。 –
你能否更詳細地解釋一下;我不太明白。如果您同時擁有XML和XSLT,爲什麼不能將它轉換爲HTML?爲什麼一旦查看HTML,HTML仍然需要引用XSLT? – Dabbler
親愛的@Dabbler,我已經按照上面的要求更新了這個查詢。謝謝 –