需求是这样产生的,公司里写了个服务接口引用,通过json字符串传递数据,在WEB上引用不同的接口函数,在不同的
Widget上显示服务里的数据.先前,实现的方法的,在每个widget部件后台都写相应的函数来通过显示数据.我们的BOSS
看了一下,重构了一下:WEB前端显示,只是一片段HTML代码,所以,在不同的部件上显示,只需写不同的样式表就可以,
所以,你只需写一个显示数据的函数返回一个HTML片段,两个参数,一个是要解析的json数据,一个是XSLT样式表;这样,
在不同的部件,你只需调用这个函数就可以.而XSLT样式表,让美工做就得了,代码也得到了重用!
///<summary>
/// json字符串片段转换成HTML片段字符串的问题
///</summary>
///<param name="data">要解析的json字符串</param>
///<param name="xsltUrl">xslt样式表路径</param>
///<returns></returns>
publicstring xslt_xml(string data, string xsltUrl)
{
XmlDocument xmldoc = (XmlDocument)JsonConvert.DeserializeXmlNode(data); //网上下载一下Newtonsoft.Json.Net.dll
XslCompiledTransform xslt =new XslCompiledTransform(true);
xslt.Load(xsltUrl);
StringReader st =new StringReader(xmldoc.InnerXml);
XmlReader xr = XmlReader.Create(st);
System.Text.StringBuilder sb=new System.Text.StringBuilder();
XmlWriter xw = XmlWriter.Create(sb);
xslt.Transform(xr,xw);
xr.Close();
xw.Close();
return sb.ToString();
}