我对XML不太熟悉(并且从未使用过XSL工作表),但是受命使用XML将输出传输到网页。我已经阅读了这里提出的几个XML到HTML的问题以及有关W3S的教程,并且对XSL样式表有所了解。
基本上,我希望最终的HTML打印出两个表,一个表显示各种Arena值,第二个表显示单个Flag值。
XML表:
<?xml version="1.0" encoding="utf-8"?>
<Stadium>
<Arena>
<Team>Team1</Team>
<Field>Arena1</Field>
<Score>100</Score>
</Arena>
<Arena>
<Team>Team2</Team>
<Field>Arena1</Field>
<Score>100</Score>
</Arena>
<Arena>
<Team>Team3</Team>
<Field>Arena2</Field>
<Score>100</Score>
</Arena>
<Flag>
<Team>Team3</Team>
</Flag>
</Stadium>
XSL工作表:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html>
<head>
</head>
<body>
<table>
<tr>
<th>Team</th>
<th>Field</th>
<th>Score</th>
</tr>
<xsl:for-each select="Stadium/Arena">
<tr>
<td><xsl:value-of select="Team" /></td>
<td><xsl:value-of select="Field" /></td>
<td><xsl:value-of select="Score" /></td>
</tr>
</xsl:for-each>
</table>
<table>
<tr>
<th>Team</th>
</tr>
<xsl:for-each select="Stadium/Flag">
<tr>
<td><xsl:value-of select="Team" /></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
这是我当前的输出:
Team Stadium Points Team /* Google Docs Dark UI by UGoBoom */ /* Version 1.0 */ /* Published Oct 26 2015 */ /* Aesthetic inspired by Vertex-gtk theme */ @namespace url(http://www.w3.org/1999/xhtml);
很明显,XSL没有与XML正确通信。谁能解释我还需要做什么以使用XSL样式表打印出适当的表格?
答案 0 :(得分:1)
总结 @TimC 的注释,您可以简单地添加
k['mnemonic']
命名为<?xml-stylesheet type="text/xsl" href="your.xslt" ?>
文件的.xml
文件。
然后,在您的XSLT文件中,应添加
your.xslt
在您的<xsl:output method="html" indent="yes" html-version="5" />
元素之后。
然后,如果在浏览器中打开XML文件,则应该获得所需的表(并可以改善其布局)。请注意,两个文件都在同一目录中。