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 也有多个重载: // // 摘要: // 启动由包含进程启动信息(例如,要启动的进程 ...
随机推荐
- Signed comparison in Verilog
Signed comparison in Verilog¶ When you write this in Verilog: wire [7:0] a; wire [7:0] b; wire less; ...
- 贪心算法(Greedy Algorithm)最小生成树 克鲁斯卡尔算法(Kruskal's algorithm)
克鲁斯卡尔算法(Kruskal's algorithm)它既是古典最低的一个简单的了解生成树算法. 这充分反映了这一点贪心算法的精髓.该方法可以通常的图被表示.图选择这里借用Wikipedia在.非常 ...
- Visual Studio 2010/2013 查看DLL接口(函数)
1. “应用程序" Visual Studio 2010/2013 的Visual Studio Tools文件夹中打开Visual Studio Command Prompt 命令提示窗口 ...
- Max Sum(最大子序和)
Description Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub ...
- HDU 1598 find the most comfortable road (最小生成树) >>
Problem Description XX明星有许多城市,通过与一个陌生的城市高速公路SARS(Super Air Roam Structure---超级空中漫游结构)进行交流.每条SARS都对行驶 ...
- NYoj 部分和问题(深搜经典)
题目链接: http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=1058 #include <stdio.h> ], vis[], co ...
- C#记录日志、获取枚举值 等通用函数列表
) { ] >= && ipvals[] <= && ipval ...
- C#实现对mongoDB的简单增删查改
首先添加所需要驱动包(可通过nuget获得) using MongoDB.Bson;using MongoDB.Driver;using MongoDB.Driver.Builders; 一.设置配置 ...
- HDU 1102 Constructing Roads, Prim+优先队列
题目链接:HDU 1102 Constructing Roads Constructing Roads Problem Description There are N villages, which ...
- 【百度地图API】如何区分地址解析和智能搜索?
原文:[百度地图API]如何区分地址解析和智能搜索? 摘要: 很多用户一直无法区分地址解析geocoder和智能搜索localsearch的使用场景.该文章用一个详尽的示例,充分展示了这两个类,共5种 ...