首页 > 代码库 > XSLT 调用外部程序
XSLT 调用外部程序
通常可以通过xslt把一个xml转成html
cd.xml
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="http://www.mamicode.com/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 调用外部程序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。