通过xslt实现的VML统计饼图(代码共享)
数据
-----------------------------
<?xml version="1.0" encoding="gb2312" ?>
<root>
<DataItem name="北京" value ="23" title="北京的人口"/>
<DataItem name="上海" value="49" title="上海的人口"/>
<DataItem name="成都" value="89" title="成都的人口"/>
<DataItem name="天津" value="36" title="天津的人口"/>
<DataItem name="武汉" value="15" title="武汉的人口"/>
<DataItem name="西安" value="57" title="西安的人口"/>
<DataItem name="d安" value="57" title="西安的人口"/>
<DataItem name="a安" value="57" title="西安的人口"/>
</root>
HTML文件
------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns:v>
<head>
<title></title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="ProgId" content="VisualStudio.HTML">
<meta name="Originator" content="Microsoft Visual Studio .NET 7.1">
<style> v\:* { BEHAVIOR: url(#default#VML)
</style>
<script>
function getxml(){
var xmlDoc=new ActiveXObject("MSXML2.FreeThreadedDOMDocument");
xmlDoc.load("chartdata.xml");
var xslDoc=new ActiveXObject("MSXML2.FreeThreadedDOMDocument");
xslDoc.load("VMLChart.xslt");
var template=new ActiveXObject("MSXML2.XSLTemplate");
template.stylesheet=xslDoc;
var proc=template.createProcessor();
proc.input=xmlDoc;
proc.addParameter("Caption","测试图表");
proc.addParameter("Width",600);
proc.addParameter("Height",450);
proc.addParameter("BackgroundColor","#e6e6e6");
proc.addParameter("Shadow","on");
proc.transform();
var strResult=proc.output;
result.innerHTML=strResult;
}
</script>
</head>
<body>
<input onclick="getxml()" value="生成" type="button">
<div id="result">
</div>
</body>
</html>