我很难在我的网页上以xsl形式显示我的xml文件 这是网页euroFixtures
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org /TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- TemplateBeginEditable name="doctitle" -->
<title>Fixtures</title>
<!-- TemplateEndEditable -->
<!-- TemplateBeginEditable name="head" -->
<!-- TemplateEndEditable -->
<link href="oneColElsCtr.css" rel="stylesheet" type="text/css" />
</head>
<body class="oneColElsCtr">
<div id="header">
<h1><a href="home.html"><img src="euro2012.jpg" alt="" width="713" height="146" /></a></h1>
<div id="links" align="middle">
<table width="711" height="59" border="1">
<!-- TemplateBeginEditable name="EditRegion4" -->
<tr>
<td width="177"><a href="euroHome.html">News</a></td>
<td width="177"><a href="euroWeather.html"> Weather</a></td>
<td width="160"><a href="euroCurrency.html">Currency Converter</a></td>
<td width="169"><a href="euroFixtures.html">Fixtures</a></td>
</tr>
<!-- TemplateEndEditable -->
</table>
</div>
</div>
<div id="container">
<div id="mainContent" ><!-- TemplateBeginEditable name="hujhjhj" -->
<frameset columns="45%,55%" cols="*,*" >
<frame src="fixtures.xml" frameborder="1"/>
<frame src="frame.html" frameborder="1"/>
</frameset>
<!-- TemplateEndEditable -->
<!-- end #mainContent --></div>
<!-- end #container --></div>
</body>
</html>
这里是xml文件夹具
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="fixtures.xsl" type="text/xsl"?>
<fixtures>
<fixture>
<match>Ireland vs. Poland</match>
<date>05-06-12</date>
<ground>Apatov</ground>
<group>A</group>
</fixture>
<fixture>
<match>France vs. Germany</match>
<date>05-06-012</date>
<ground>Krakow</ground>
<group>A</group>
</fixture>
<fixture>
<match>Italy vs. Spain</match>
<date>06-06-12</date>
<ground>Kiev</ground>
<group>B</group>
</fixture>
<fixture>
<match>Portugal vs. Croatia</match>
<date>06-06-12</date>
<ground>Warsaw</ground>
<group>B</group>
</fixture>
<fixture>
<match>Austria vs. Greece</match>
<date>07-06-12</date>
<ground>Flam</ground>
<group>C</group>
</fixture>
<fixture>
<match>Lithuania vs. Latvia</match>
<date>07-06-12</date>
<ground>Gameu</ground>
<group>C</group>
</fixture>
<fixture>
<match>England vs. Sweden</match>
<date>08-06-12</date>
<ground>Hanaas</ground>
<group>D</group>
</fixture>
<fixture>
<match>Norway vs. Denmark</match>
<date>08-06-12</date>
<ground>Olam</ground>
<group>D</group>
</fixture>
</fixtures>
这里是xsl文件夹具
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="/">
<html><head> <title>Output document</title></head>
<body><xsl:apply-templates /></body></html>
</xsl:template>
<xsl:template match="fixture">
<table width="100%" border="2">
<tr bgcolor="silver"><td>match</td><td>date</td><td>ground</td><td>group</td></tr>
<xsl:for-each select="fixture">
<tr>
<td><xsl:value-of select="match"/></td>
<td><xsl:sort select="date"
order="ascending" data-type="text"/></td>
<td><xsl:value-of select="ground"/></td>
<td><xsl:value-of select="group"/></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
我不认为这很重要,但这里是html文件框架
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Untitled 2</title>
</head>
<body>
frame_a.htm
</body>
</html>
。我一直在尝试和尝试,但我不能让这件事工作。 任何人都可以对我表示高度赞赏
答案 0 :(得分:1)
此代码包含明显的语法错误:
<xsl:for-each select="fixture">
<tr>
<td><xsl:value-of select="match"/></td>
<td><xsl:sort select="date"
order="ascending" data-type="text"/></td>
<td><xsl:value-of select="ground"/></td>
<td><xsl:value-of select="group"/></td>
</tr>
</xsl:for-each>
xsl:sort
只能是xsl:for-each
的孩子或xsl:apply-templates
的孩子。这是td
的孩子。
存在第二个语义错误:
<xsl:template match="fixture">
<table width="100%" border="2">
<tr bgcolor="silver"><td>match</td><td>date</td><td>ground</td><td>group</td></tr>
<xsl:for-each select="fixture">
上面xsl:for-each
的正文将不会应用于任何节点,因为当前节点(fixture
)没有任何名为fixture
的子节点。
您可能需要:
<xsl:template match="fixtures">
完整更正的代码为:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="/">
<html><head> <title>Output document</title></head>
<body><xsl:apply-templates /></body></html>
</xsl:template>
<xsl:template match="fixtures">
<table width="100%" border="2">
<tr bgcolor="silver"><td>match</td><td>date</td><td>ground</td><td>group</td></tr>
<xsl:for-each select="fixture">
<xsl:sort select="date"
order="ascending" data-type="text"/> <tr>
<td><xsl:value-of select="date"/></td>
<td><xsl:value-of select="match"/></td>
<td><xsl:value-of select="ground"/></td>
<td><xsl:value-of select="group"/></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
并应用于提供的XML文档:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Output document</title>
</head>
<body>
<table width="100%" border="2">
<tr bgcolor="silver">
<td>match</td>
<td>date</td>
<td>ground</td>
<td>group</td>
</tr>
<tr>
<td>France vs. Germany</td>
<td>05-06-012</td>
<td>Krakow</td>
<td>A</td>
</tr>
<tr>
<td>Ireland vs. Poland</td>
<td>05-06-12</td>
<td>Apatov</td>
<td>A</td>
</tr>
<tr>
<td>Italy vs. Spain</td>
<td>06-06-12</td>
<td>Kiev</td>
<td>B</td>
</tr>
<tr>
<td>Portugal vs. Croatia</td>
<td>06-06-12</td>
<td>Warsaw</td>
<td>B</td>
</tr>
<tr>
<td>Austria vs. Greece</td>
<td>07-06-12</td>
<td>Flam</td>
<td>C</td>
</tr>
<tr>
<td>Lithuania vs. Latvia</td>
<td>07-06-12</td>
<td>Gameu</td>
<td>C</td>
</tr>
<tr>
<td>England vs. Sweden</td>
<td>08-06-12</td>
<td>Hanaas</td>
<td>D</td>
</tr>
<tr>
<td>Norway vs. Denmark</td>
<td>08-06-12</td>
<td>Olam</td>
<td>D</td>
</tr>
</table>
</body>
</html>