Altova XMLSpy 2024 Enterprise Edition

下面的XSLT文档示例展示了如何使用Altova图表扩展函数。下面进一步给出了一个XML文档,和使用XSLT 2.0或3.0引擎用XSLT文档处理该XML文档时生成的输出图像的截图。

 

提示:图表函数仅在Altova产品的企业版和服务器版中受支持。

 

提示:有关如何创建图表数据表格的更多信息,请参见Altova的XMLSpyStyleVision产品的文档。

 

 

XSLT文档

以下XSLT文档(参见下方片段)使用Altova图表扩展函数来生成一个饼图。它可用于处理列在下方的XML文档。

 

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="2.0" 

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 

 xmlns:xs="http://www.w3.org/2001/XMLSchema" 

 xmlns:altovaext="http://www.altova.com/xslt-extensions" 

 exclude-result-prefixes="#all">

 <xsl:output version="4.0" method="html" indent="yes" encoding="UTF-8"/>

 <xsl:template match="/">

         <html>

                 <head>

                         <title>

                                 <xsl:text>HTML Page with Embedded Chart</xsl:text>

                         </title>

                 </head>

                 <body>

                         <xsl:for-each select="/Data/Region[1]">

                                 <xsl:variable name="extChartConfig" as="item()*">

                                         <xsl:variable name="ext-chart-settings" as="item()*">

                                                 <chart-config>

                                                         <General 

                                                                 SettingsVersion="1" 

                                                                 ChartKind="Pie3d" 

                                                                 BKColor="#ffffff" 

                                                                 ShowBorder="1" 

                                                                 PlotBorderColor="#000000" 

                                                                 PlotBKColor="#ffffff" 

                                                                 Title="{@id}" 

                                                                 ShowLegend="1" 

                                                                 OutsideMargin="3.2%" 

                                                                 TitleToPlotMargin="3.%" 

                                                                 LegendToPlotMargin="6.%"

                                                                 >

                                                                 <TitleFont 

                                                                         Color="#023d7d" 

                                                                         Name="Tahoma" 

                                                                         Bold="1" 

                                                                         Italic="0" 

                                                                         Underline="0" 

                                                                         MinFontHeight="10.pt" 

                                                                         Size="8.%" />

                                                         </General>

                                                 </chart-config>

                                         </xsl:variable>

                                         <xsl:sequence select="altovaext:create-chart-config-from-xml( \$ext-chart-settings )"/>

                                 </xsl:variable>

                                 <xsl:variable name="chartDataSeries" as="item()*">

                                         <xsl:variable name="chartDataRows" as="item()*">

                                                 <xsl:for-each select="(Year)">

                                                         <xsl:sequence select="altovaext:create-chart-data-row( (@id), ( .) )"/>

                                                 </xsl:for-each>

                                         </xsl:variable>

                                         <xsl:variable name="chartDataSeriesNames" as="xs:string*" select=" ( (&quot;Series 1&quot;), &apos;&apos; )[1]"/>

                                         <xsl:sequence 

                                                 select="altovaext:create-chart-data-series-from-rows( \$chartDataSeriesNames, \$chartDataRows)"/>

                                 </xsl:variable>

                                 <xsl:variable name="ChartObj" select="altovaext:create-chart( \$extChartConfig, ( \$chartDataSeries), false() )"/>

                                 <xsl:variable name="sChartFileName" select="'mychart1.png'"/>

                                 <img src="{\$sChartFileName, altovaext:save-chart-image( \$ChartObj, \$sChartFileName, 400, 400 ) }"/>

                         </xsl:for-each>

                 </body>

         </html>

 </xsl:template>

</xsl:stylesheet>

 

 

XML文档

以下XML文档可以用上面的XSLT文档来处理。该XML文档中的数据被用来生成下方截图中的饼图。

 

<?xml version="1.0" encoding="UTF-8"?>

<Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

      xsi:noNamespaceSchemaLocation="YearlySales.xsd">

 <ChartType>Pie Chart 2D</ChartType>

 <Region id="Americas">

         <Year id="2005">30000</Year>

         <Year id="2006">90000</Year>

         <Year id="2007">120000</Year>

         <Year id="2008">180000</Year>

         <Year id="2009">140000</Year>

         <Year id="2010">100000</Year>

 </Region>

 <Region id="Europe">

         <Year id="2005">50000</Year>

         <Year id="2006">60000</Year>

         <Year id="2007">80000</Year>

         <Year id="2008">100000</Year>

         <Year id="2009">95000</Year>

         <Year id="2010">80000</Year>

 </Region>

 <Region id="Asia">

         <Year id="2005">10000</Year>

         <Year id="2006">25000</Year>

         <Year id="2007">70000</Year>

         <Year id="2008">110000</Year>

         <Year id="2009">125000</Year>

         <Year id="2010">150000</Year>

 </Region>

</Data>

 

 

输出图像

下方显示的饼图是用XSLT文档处理上方列出的XML文档时生成的结果。

AXChartsOutputPie

 

© 2017-2023 Altova GmbH