Я создаю базовое веб-приложение «Список контактов» с тремя страницами - страницу «Список контактов», в которой отображаются все контакты в БД (хранятся в файле XML), Страница «Просмотр контактов» (это страница только для чтения, на которой отображается контактная информация) и страница «Новый контакт» (которая позволяет вам создавать новый контакт или редактировать информацию о ранее существовавшем контакте).Невозможно правильно отобразить XSL с переменными XSL и XPATH
Моя проблема связана с контактной страницей. Каждый контакт имеет идентификатор, и этот идентификатор передается через URL-адрес (т. Е. ContactViewer? Id = mk). Используя этот идентификатор, я надеялся, что с помощью простого xsl для каждого, который проверяет URL-запрос (сохраненный в переменной xsl), чтобы выбрать, какой контакт из БД для отображения будет работать. К сожалению, после добавления «для каждого» ничего не отображается на странице, и я не могу понять, где это происходит.
Это страница XSL для ContactView.
<?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>