我对 XSLT 样式表很陌生。我和他们一起做了一些非常基础的工作,现在有一个项目正在测试我的能力。我什至不认为我问这个问题的方式是正确的。
下面是一组 XML 数据,代表我正在使用的数据。它的废话数据...
<?xml version="1.0" encoding="utf-8"?>
<catalog_new>
<catalog_old>
<catalog_newold>
<final>
<cd_info title="Empire Burlesque" artist="Dylan" />
<store name="BestBuy" />
<sales thismonth="500"/>
<returns thismonth="10"/>
<store name="Target" />
<sales thismonth="500"/>
<returns thismonth="10"/>
</final>
<final>
<cd_info title="Stand" artist="REM" />
<store name="BestBuy" />
<sales thismonth="1000"/>
<returns thismonth="20"/>
<store name="Target" />
<sales thismonth="530"/>
<returns thismonth="50"/>
</final>
</catalog_newold>
</catalog_old>
</catalog_new>
我需要做的是选择每个 final/cd_info 项目,然后只需选择名称 = Best Buy 的商店记录,然后选择每个销售和退货的本月值。
我正在尝试制作一个如下所示的表格:
CDName Artist Store SalesThisMonth Returns
Stand R.E.M Best Buy 500 10
这就是我要去的地方:
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
<xsl:output method="html" indent="yes" encoding = "utf-8" standalone = "yes"/>
<xsl:template match="/">
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<table border="1" style="width: 100%;">
<tr>
<th>Albumn Name</th>
<th>Artist</th>
<th>Store</th>
</tr>
<xsl:for-each select ="//catalog_new">
<xsl:for-each select="catalog_old">
<xsl:for-each select="catalog_newold">
<xsl:for-each select="final">
<xsl:for-each select="cd_info">
<tr>
<td>
<xsl:value-of select="@title"/>
</td>
<td>
<xsl:value-of select="@artist"/>
</td>
</tr>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
我最终删除了我所做的每一次尝试......我只是偏离轨道还是我在正确的轨道上?
提前致谢。