我正在制作一个包含三个页面的基本联系人列表 Web 应用程序 - 一个显示数据库中所有联系人的联系人列表页面(存储在 XML 文件中),一个联系人视图页面(即显示联系人信息的只读页面)和新联系人页面(允许您建立新联系人或编辑以前存在的联系人的信息)。
我的问题是联系人视图页面。每个Contact都有一个ID,这个ID是通过URL传递的(即contactViewer?id=mk)。使用此 ID,我希望使用一个简单的 xsl for-each 检查 URL 请求(保存在 xsl 变量中)以从数据库中选择要显示的联系人。不幸的是,在添加“for-each”之后,页面上什么也没有显示,我不知道哪里出了问题。
这是 ContactView 的 XSL 页面。
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="url"/>
<xsl:variable name="currentID" select="substring-after($url, 'id=')"/>
<xsl:template match="/">
<html>
<head>
<title>Contact Database - Contact Viewer</title>
<style>
h1 {color:white; background-color:black; border-style:solid;
border-color: #981b1e; padding-left:10px; font-weight:bold;}
</style>
</head>
<body>
<h1>Contact Viewer</h1>
<xsl:value-of select="$currentID"/>
<xsl:for-each select="contactdatabase/contact/id[$currentID]">
<table cellspacing="5" border="3">
<tr height="60">
<td width="70px">
<xsl:value-of select="contactdatabase/contact/firstName"/>
</td>
<td width="100px">
<xsl:value-of select= "contactdatabase/contact/lastName"/>
</td>
<td width="120px">
<xsl:value-of select="contactdatabase/contact/firstName"/>
</td>
<td width="90px">
<xsl:value-of select="contactdatabase/contact/firstName"/>
</td>
<td width="35px">
<xsl:value-of select="contactdatabase/contact/state"/>
</td>
<td width="44px">
<xsl:value-of select="contactdatabase/contact/zipcode"/>
</td>
<td width="60px">
<xsl:value-of select="contactdatabase/contact/country"/>
</td>
<td width="80">
<xsl:value-of select="contactdatabase/contact/email"/> <br></br>
<xsl:value-of select="contactdatabase/contact/home"/> <br></br>
<xsl:value-of select="contactdatabase/contact/mail"/>
</td>
<td width="80">
<xsl:value-of select="contactdatabase/contact/phonenum"/>
</td>
<td width="180">
<xsl:value-of select="contactdatabase/contact/emailaddress"/>
</td>
<td width="120px">
<a href="contactViewer?contactid={id}">view</a> / edit / delete
</td>
</tr>
</table>
</xsl:for-each>
<a href="contactList">Contact List</a>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
XML 数据库设置为
<contactdatabase>
<contact>
<firstName />
<lastName />
<address />
<city />
<state />
<zipcode />
<country />
<email />
<phone />
<mail />
<phonenum />
<emailaddress />
<comment />
<id />
</contact>
</contactdatabase>