数据视图使用XSLT描述如何转换SP从数据源抽取的XML数据为HTML。SP第一步把XML数据转化成XML树,即节点,代表XML元素和属性的层次结构。数据源详细信息任务窗格以文件系统中的文件结构相似的方法显示层次结构。列表或库代表行XML元素,列表项目代表行XML子元素,每个域代表XML属性。(在XSLT中,XML属性以@为前缀)。XSLT然后被用来导航层次结构,XML 路径语言(XPath)被用来选择一个或多个节点。
XSLT指令本身也用XML数据表示。xsl:template元素包含一个match属性,定义了用来选择被转化节点的XPath表达式。一个节点被选中后,组件指定如何操纵XML数据。这些组件包括HTML格式标签和其他XSLT元素。例如,在下面的XSLT中,xsl:template元素发现了Invoice XML元素,并且HTML格式化了xsl:value-of元素。使用例子中的XML数据,XSLT将布局Adventure Works作为新的段落(粗体)。
<xsl:template match="Invoice">
<p><strong><xsl:value-ofselect="Company" /></strong>
</xsl:template>
在数据视图中,SPD自动生成XSLT。它也提供了XSLT编辑器,即XPath Expression Builder,来帮助开发复杂解决方案。这个编辑器提供XPath的智能提示,使你创建XPath表达式成为可能。
本次练习中,你使用XSLT编辑器添加排序表达式。
准备:使用SPD打开CreateDVWP.aspx,选中SalesReport DFWP。
1. 在数据视图工具-->选项—>筛选、排序和分组,点击排序和分组。
2. 在排列顺序下,点击Quarter,然后点击移除。
3. 在可用域,点击添加排序表达式,添加
高级排序对话框打开
4. 在选择插入的函数下,双击concat
故障分析:如果函数concat没有出现在列表中,在函数类别下选择文本/字符串。
5. 在出现的列表中,输入@s,点击Tab键选择@Sales_x0020_Person
6. 在@Sales_x0020_Person后的插入点,输入“:”,@quar 点击Tab键选择@Quarter
XPath表达式应该是concat(@Sales_x0020_Person,”:”,@Quarter),预览框中显示表达式的结果。
7. 点击“确定”,关闭高级排序对话框。
8. 在排序和分组对话框,组属性下,点击显示组页眉,显示组页脚
9. 点击“确定”关闭排序和分组对话框。
在Quarter计数的No. Of Sales精确显示了每季度销量。
10. 点击保存,点击“是”重新能加载页面查看结果。