【发布时间】:2015-01-20 12:00:00
【问题描述】:
我有一个包含 3 列的 XML 文件。
用户创建 受控药物名称 数
我想使用 XSLT 对此进行 PIVOT,以便一列是行标题,一列是行,另一列是数据。
E.e.
我希望 User_Created 位于第一行,Drugs 下降,然后是数据透视表中每个的计数。
到目前为止,我有以下内容,其中包含名称和药物,但未填充计数。
任何帮助将不胜感激。
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright Strand Technology Ltd, 2008 -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:cn="http://www.strandtechnology.co.uk/carenotes" version="1.0">
<xsl:output method="html" indent="yes" />
<xsl:key name="UserHeader" match="QueryResults/Data/DataRow" use="User_Created" />
<xsl:key name="DrugHeader" match="QueryResults/Data/DataRow" use="Controlled_Drug_Name" />
<xsl:template match="QueryResults">
<table>
<tr style="text-align:center;">
<td>DRUG NAME</td>
<xsl:for-each select="Data/DataRow[count(. | key('UserHeader', User_Created)[1]) = 1]">
<td>
<xsl:value-of select="User_Created" />
</td>
</xsl:for-each>
</tr>
<xsl:for-each select="Data/DataRow[count(. | key('DrugHeader', Controlled_Drug_Name)[1]) = 1]">
<tr style="text-align:center;">
<td>
<xsl:value-of select="Controlled_Drug_Name" />
</td>
<xsl:for-each select="Data/DataRow[count(. | key('UserHeader', User_Created)[1]) = 1]">
<td>
<xsl:value-of select="count" />
</td>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
【问题讨论】: