通常可以通过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 调用外部程序的更多相关文章

  1. MySql UDF 调用外部程序和系统命令

    1.mysql利用mysqludf的一个mysql插件可以实现调用外部程序和系统命令 下载lib_mysqludf_sys程序:https://github.com/mysqludf/lib_mysq ...

  2. C#winform调用外部程序,等待外部程序执行完毕才执行下面代码

    1.简单调用外部程序文件(exe文件,批处理等),只需下面一行代码即可 System.Diagnostics.Process.Start(“应用程序文件全路径”); 2.如果要等待调用外部程序执行完毕 ...

  3. Delphi 调用外部程序并等待其运行结束

    转自:http://blog.csdn.net/xieyunc/article/details/4140620   如何让Delphi调用外部程序并等待其运行结束 1. uses     Window ...

  4. XSLT 调用java

    XSLT调用JS  http://www.ibm.com/developerworks/cn/xml/tips/x-tipxsltjs/index.htmlXSLT调用JAVA  http://unm ...

  5. QProcess调用外部程序方式的差异

    众所周知QProcess类的作用是启动一个外部的程序并与之交互它有三种方式调用外部程序: 1. execute 2. start 3. startDetached 从调用上看: execute是阻塞调 ...

  6. C#使用Process类调用外部程序(转)

    在程序开发中,一个程序经常需要去调用其他的程序,C#中Process类正好提供了这样的功能.它提供对本地和远程进程的访问并使您能够启动和停止本地系统进程.一.启动进程实例 Process myProc ...

  7. PowerShell中调用外部程序和进程操作命令例子

    学习PowerShell,我们不指望通过C#编程去搞定所有事情,我们应该记住cmd.exe或者说批处理给我们留下的宝贵财富——通过调用外部程序去解决问题.调用了外部程序,势必就要对进程进行管理,这就是 ...

  8. delphi调用外部程序打开文件

    delphi调用外部程序打开文件 ShellExecute的各种用法 一.利用系统默认的邮件收发器发送电子邮件 Uses ..., ShellAPI; Var lpHwnd: HWND; lpOper ...

  9. C# 使用Process调用外部程序中所遇到的参数问题

    在使用Process.Start 调用外部程序时,除了程序的地址之外,是可以传递参数的,Process.Start 也有多个重载: // // 摘要: // 启动由包含进程启动信息(例如,要启动的进程 ...

随机推荐

  1. hello nodejs

    文章1一步:下载.安装文件 打开nodejs官方网站http://www.nodejs.org/download/ .选择须要的版本号.直接打开.默认安装就可以 第二步:编写測试代码: var htt ...

  2. jsp跳转后台代码页的简易方式~

    jsp跳转到代码隐藏页.有几种方法,例如,: action方式: jquery方式,码如下面: function regCust(){         $('#containerFRM').form( ...

  3. Dp_F Pku1157

    <span style="color:#000099;">/* F - 简单dp Time Limit:1000MS Memory Limit:10000KB 64bi ...

  4. JavaScript中五种常见运算符

    一. in运算符 in运算符希望它的左操作数是一个字符串或可以转换为字符串,希望它的右操作数是一个对象.如果右侧的对象拥有一个名为左操作数值的属性名,那么表达式返回true.例如: var point ...

  5. Git常用命令(转)

    目前开发的新项目使用的版本控制工具基本用的都是Git,老项目用的还是Svn,网上Git资源也很多,多而杂.我整理了一份关于Git的学习资料,希望能帮助到正在学习Git的同学. 一. Git 命令初识 ...

  6. 组合数处理(逆元求解)...Orz

    网上发现了不错的博客讲解... 熊猫的板子:http://blog.csdn.net/qq_32734731/article/details/51484729 组合数的预处理(费马小定理|杨辉三角|卢 ...

  7. 网络资源(3) - iBatis视频

    2018_08_24 http://v.youku.com/v_show/id_XMjk2ODY2OTE2.html iBatis视频教程01

  8. redis权限认证(设置密码)的方法

    redis可以通过设置密码来增强安全强度.除了设置密码,我们还可以通过修改redis的默认端口.对端口做防火墙等.那么如何开启redis的密码功能呢?以下就是详细的步骤方法: 打开redis.conf ...

  9. 组态ORACLE 11G ADG

    一旦载10g的,没有票据.昨天使用duplicate方法一安装11g ADG,过程艰辛,记录: 一.环境配置 主图书馆 IP地址:192.168.233.128/24 操作系统版本号:rhel5.8 ...

  10. hdu 1098 Ignatius's puzz

    有关数论方面的题要仔细阅读,分析公式. Problem Description Ignatius is poor at math,he falls across a puzzle problem,so ...