xslt调用自定义函数(C#/Js/Java)
2012-01-17 17:52
561 查看
本文主要演示xslt调用自定义的函数,此处用C#作为编写自定义函数的语言,用C#去完成xslt对xml的筛选功能。
View Code
private static DataTable OutputDataTable()
{
string xmlPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "target.xml");
string xsltPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "CSRCNAV.xslt");
string schemaPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "CSRCNAV.xsd");
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlPath);
//设置可以执行脚本函数
XsltSettings settings = new XsltSettings();
settings.EnableDocumentFunction = true;
settings.EnableScript = true;
//设置xslt可以包含外部的xslt文件
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials;
MemoryStream memoryStream = new MemoryStream();
XslCompiledTransform xslCompiledTransform = new XslCompiledTransform();
xslCompiledTransform.Load(xsltPath, settings, resolver);
xslCompiledTransform.Transform(xmlDoc, null, memoryStream);
using (DataTable dt = new DataTable())
{
dt.ReadXmlSchema(schemaPath);
memoryStream.Position = 0;
dt.ReadXml(memoryStream);
return dt;
}
}
源代码下载
View Code
private static DataTable OutputDataTable()
{
string xmlPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "target.xml");
string xsltPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "CSRCNAV.xslt");
string schemaPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "CSRCNAV.xsd");
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlPath);
//设置可以执行脚本函数
XsltSettings settings = new XsltSettings();
settings.EnableDocumentFunction = true;
settings.EnableScript = true;
//设置xslt可以包含外部的xslt文件
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials;
MemoryStream memoryStream = new MemoryStream();
XslCompiledTransform xslCompiledTransform = new XslCompiledTransform();
xslCompiledTransform.Load(xsltPath, settings, resolver);
xslCompiledTransform.Transform(xmlDoc, null, memoryStream);
using (DataTable dt = new DataTable())
{
dt.ReadXmlSchema(schemaPath);
memoryStream.Position = 0;
dt.ReadXml(memoryStream);
return dt;
}
}
源代码下载
相关文章推荐
- Atitit。Js调用后台语言 java c# php swing android swt的方法大总结
- 我用纯C语言开发的中英文混合分词服务器3.0正式发布,词库190多万词,每秒切分5万+,同时提供 c、java、C#、delphi、js调用范例
- 意外作出了一个javascript的服务器,可以通过js调用并执行任何java(包括 所有java 内核基本库)及C#类库,并最终由 C# 执行你提交的javascript代码! 不敢藏私,特与大家分
- Atitit java c# php c++ js跨语言调用matlab实现边缘检测等功能attilax总结
- Atitit java c# php c++ js跨语言调用matlab实现边缘检测等功能attilax总结
- 意外作出了一个javascript的服务器,可以通过js调用并执行任何java(包括 所有java 内核基本库)及C#类库,并最终由 C# 执行你提交的javascript代码! 不敢藏私,特与大家分
- atitit.js javascript 调用c# java php后台语言api html5交互的原理与总结p97
- 我用纯C语言开发的中英文混合分词服务器3.0正式发布,词库190多万词,每秒切分5万+,同时提供 c、java、C#、delphi、js调用范例
- js,c#:js和c#之间如何相互调用
- 取中文拼音首字母,提供了多音字的选择 js javascript c# java(转)
- 前台js与后台C#互相调用
- JS和C#方法相互调用
- Atitit 跨平台异常处理(2)--------异常转换 -----java c# js异常对象结构比较and转换
- js和c#相互调用
- 在WebView中如何让JS与Java安全地互相调用
- 在C#中调用Java生成的Jar库文件的方法
- Java调用C#WEBSERVICE需要注意的细节及实例
- java调用百度地图web服务api-----该方法可用在js跨域请求上
- 使用js直接调用java中的方法
- 在java程序中使用jQuery抓取网页的新方法(java调用js解析引擎)