选择较低的值,将两个XML文件与XSLT进行比较

时间:2013-04-11 10:09:44

标签: xml xslt xslt-1.0

我有两个不同的XML文件。每一个都指CD目录。我正在做的是使用XSLT生成一个表,其中每个目录都出现在一列中。这使用户可以轻松地比较目录。

我现在的想法是,在某些属性(如价格)的情况下,检测哪些比较的CD具有最低价格并将单元格的背景颜色更改为绿色。

这是我不知道该怎么做的地方。当所有这些值都包含在同一个XML文件中时,我可以选择最小价格值,但如果我处理不同的XML文件,我就无法做到。

以下是两个要比较的XML文件示例: 1 .-

<?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>

0 个答案:

没有答案