XSLT 调用外部程序
通常可以通过xslt把一个xml转成html
cd.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="cd_apply.xslt"?>
<collection>
<cd>
<title>Boys for Pele</title>
<artist>Tori Amos</artist>
<tracks>
<track type="vocal">
<name>Horses</name>
<length>3.5</length>
</track>
<track type="instrumental">
<name>Blood roses</name>
<length>3.2</length>
</track>
<track type="vocal">
<name>Father lucifer</name>
<length>3.8</length>
</track>
<track type="instrumental">
<name>Professional widow</name>
<length>4.1</length>
</track>
<track type="vocal">
<name>Mr. Zebra</name>
<length>3.6</length>
</track>
</tracks>
</cd>
<cd>
<title>The Ghosts that Hunt me</title>
<artist>Crash TestDummies</artist>
<tracks>
<track type="vocal">
<name>Winter song</name>
<length>4.3</length>
</track>
<track type="instrumental">
<name>Comin's back soon</name>
<length>4.1</length>
</track>
<track type="vocal">
<name>Superman's song</name>
<length>4.1</length>
</track>
<track type="vocal">
<name>Here on earth</name>
<length>3.1</length>
</track>
</tracks>
</cd>
</collection>
cd.apply.xslt
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body><xsl:apply-templates/></body>
</html>
</xsl:template> <xsl:template match="collection">
<xsl:apply-templates/>
</xsl:template> <xsl:template match="cd">
<center>
<xsl:apply-templates/>
</center>
</xsl:template> <xsl:template match="title">
<font size="5"><b><xsl:value-of select="."/>:</b></font>
</xsl:template> <xsl:template match="artist">
<font size="5"><i><xsl:value-of select="."/></i></font>
</xsl:template> <xsl:template match="tracks">
<table border="1">
<tr>
<th>Name</th>
<th>Length</th>
<th>Type</th>
</tr>
<xsl:apply-templates/>
</table>
<br/><br/>
</xsl:template> <xsl:template match="track">
<tr>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="length"/></td>
<td><xsl:value-of select="@type"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>
有时可以调用一个外部程序的方法进行转换,比如外部类叫做Transformer
XslCompiledTransform xslt = new XslCompiledTransform();
XsltSettings xsltset = new XsltSettings();
xslt.Load(path, xsltset, null);
var arguments = new XsltArgumentList();
arguments.AddExtensionObject("urn:transformer", new Transformer());
xsltDOE2.Transform(.., arguments, ..);
xslt做相应修改
xmlns:transformer="urn:transformer" //加一个namespace
<xsl:value-of select="transformer:Transform(.)"/>
C#代码
public class Transformer
{
public string Transform(XPathNavigator navigator, double value1, bool value2)
{
...
}
public string Transform(XPathNodeIterator iterator)
{
...
}
}
XSLT 调用外部程序的更多相关文章
- MySql UDF 调用外部程序和系统命令
1.mysql利用mysqludf的一个mysql插件可以实现调用外部程序和系统命令 下载lib_mysqludf_sys程序:https://github.com/mysqludf/lib_mysq ...
- C#winform调用外部程序,等待外部程序执行完毕才执行下面代码
1.简单调用外部程序文件(exe文件,批处理等),只需下面一行代码即可 System.Diagnostics.Process.Start(“应用程序文件全路径”); 2.如果要等待调用外部程序执行完毕 ...
- Delphi 调用外部程序并等待其运行结束
转自:http://blog.csdn.net/xieyunc/article/details/4140620 如何让Delphi调用外部程序并等待其运行结束 1. uses Window ...
- XSLT 调用java
XSLT调用JS http://www.ibm.com/developerworks/cn/xml/tips/x-tipxsltjs/index.htmlXSLT调用JAVA http://unm ...
- QProcess调用外部程序方式的差异
众所周知QProcess类的作用是启动一个外部的程序并与之交互它有三种方式调用外部程序: 1. execute 2. start 3. startDetached 从调用上看: execute是阻塞调 ...
- C#使用Process类调用外部程序(转)
在程序开发中,一个程序经常需要去调用其他的程序,C#中Process类正好提供了这样的功能.它提供对本地和远程进程的访问并使您能够启动和停止本地系统进程.一.启动进程实例 Process myProc ...
- PowerShell中调用外部程序和进程操作命令例子
学习PowerShell,我们不指望通过C#编程去搞定所有事情,我们应该记住cmd.exe或者说批处理给我们留下的宝贵财富——通过调用外部程序去解决问题.调用了外部程序,势必就要对进程进行管理,这就是 ...
- delphi调用外部程序打开文件
delphi调用外部程序打开文件 ShellExecute的各种用法 一.利用系统默认的邮件收发器发送电子邮件 Uses ..., ShellAPI; Var lpHwnd: HWND; lpOper ...
- C# 使用Process调用外部程序中所遇到的参数问题
在使用Process.Start 调用外部程序时,除了程序的地址之外,是可以传递参数的,Process.Start 也有多个重载: // // 摘要: // 启动由包含进程启动信息(例如,要启动的进程 ...
随机推荐
- mvc5 解析route源码实现自己的route系统
Asp.net mvc5 解析route源码实现自己的route系统 url route 路由系统的责任是找到匹配的路由,创建路由数据,并将请求分配给一个处理程序. 选择动作是 MVC 的处理程序 ...
- 考试easy该,学习如何做?
我的两个学生(场和任)都讲了他们周末參加的一个认证考试不考大题考小题的事情.由感而发: 话说不用大题考,大概是不敢用大题考. 老师的教.和学生的学中.存在的一些问题得不到解决,整体讲,学生的学习效果没 ...
- SharePoint 2010 升级到2013时间 为了确保用户可以连接,但无法改变升级数据
SharePoint 2010 升级到2013时间 为了确保用户可以连接,但无法改变升级数据 我总结的步骤 红色请注意它们的含义. 步骤1:连接到SQL DBS 上的SharePoint 2010数据 ...
- 使用 CodeIgniter 框架快速开发 PHP 应用(六)
原文:使用 CodeIgniter 框架快速开发 PHP 应用(六) 简化使用 Session 和安全理论说得够多了! 现在让我们开始写我们自己的应用. 在这一章里,我们将会大致描述一下我们要建立的一 ...
- js中frame的操作问题
这里以图为例,在这里把frame之间的互相操作简单列为:1变量2方法3页面之间元素的互相获取. A 首先从 父(frameABC)------->子(frameA,frameB,frameC) ...
- NSOJ 畅通工程(并查集)
某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可). ...
- 大数据系列修炼-Scala课程07
由于昨天下班后有点困,就没有来及写博客,今天会把它补上!把这个习惯坚持下去! 关于Scala高阶函数详解 1.Scala高阶函数代码实现:高阶函数就是在我们函数中套用函数 2.高阶函数代码详解:高阶函 ...
- JavaScript中的try...catch和异常处理
在JavaScript可以使用try...catch来进行异常处理.例如: try { foo.bar();} catch (e) { alert(e.name + ": " + ...
- jQuery遍历table中间tr td并获得td价值
jQuery遍历table中间tr td并获得td中间值 $(function(){ $("#tableId tr").find("td").each(func ...
- POJ3468 A Simple Problem with Integers 【段树】+【成段更新】
A Simple Problem with Integers Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 57666 ...