2 つの異なる XML ファイルがあります。それぞれがCDカタログを参照しています。私がやっていることは、XSLT を使用して、各カタログが列に表示されるテーブルを生成することです。これにより、ユーザーはカタログを簡単に比較できます。
私の考えでは、価格などのいくつかの属性の場合、比較した CD のどれが最低価格であるかを検出し、セルの背景色を緑に変更します。
そして、ここで私はそれを行う方法がわかりません。これらの値がすべて同じ XML ファイルに含まれている場合は、最小価格の値を選択できますが、別の XML ファイルを使用している場合は選択できません。
比較する 2 つの XML ファイルの例を次に示します。
<?xml version="1.0" encoding="ISO-8859-1"?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
</catalog>
2.-
<?xml version="1.0" encoding="ISO-8859-1"?>
<catalog>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>7.30</price>
<year>1988</year>
</cd>
</catalog>
そして、現在の比較表を生成するための XSLT コードは次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2">
<xsl:template match="/">
<html>
<head>
<link rel="stylesheet" type="text/css" href="..\..\GeossBack\compara.css"/>
</head>
<body>
<h1>Comparison</h1>
<table border="0" cellspacing="3">
<tr>
<td width="250">
CD Artist
</td>
<xsl:for-each select="/csw:GetRecordByIdResponse/catalog">
<td width="250">
<xsl:value-of select="cd/artist"/>
</td>
</xsl:for-each>
</tr>
<tr>
<td width="250">
CD Price
</td>
<xsl:for-each select="/csw:GetRecordByIdResponse/catalog">
<td width="250">
<xsl:value-of select="cd/price"/>
</td>
</xsl:for-each>
</tr>
<tr>
<td width="250">
CD Year
</td>
<xsl:for-each select="/csw:GetRecordByIdResponse/catalog">
<td width="250">
<xsl:value-of select="cd/year"/>
</td>
</xsl:for-each>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>