• 如何让xslt样式表接受参数


    我们经常会有这样的需求:有多份数据,需要共享一份样式表来转换。他们的区别可能就在于顶部会有一些小的差异,那么如何解决这个事情呢?

    1. 在XSLT中定义参数

    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
    >
        <xsl:output method="xml" indent="yes"/>
        <xsl:param name="Title"></xsl:param>

      <xsl:template match="/">
          <html>
            <head></head>
            <body>
              <h1>
                <xsl:value-of select="$Title"/>
              </h1>
            </body>
          </html>
        </xsl:template>
    </xsl:stylesheet>

     

    2. 在客户端代码中传递一个参数过来

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Xml.Xsl;
    using System.Xml.XPath;
    using System.Xml;

    using System.IO;

    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                XmlDocument doc = new XmlDocument();
                doc.LoadXml("<Tables><Table><Name>Orders</Name></Table></Tables>");

                XslCompiledTransform tran = new XslCompiledTransform();
                tran.Load("Test.xslt");

                XsltArgumentList a = new XsltArgumentList();
                a.AddParam("Title", string.Empty, "陈希章的报告");

                FileStream stream = new FileStream("Test.htm", FileMode.Create);

                tran.Transform(doc.CreateNavigator(), a, stream);
                stream.Close();
            }

        }
    }

  • 相关阅读:
    Excel:大小写转换
    Qt Quick开发环境搭建
    如何集成QML与C++?
    第十八章:QML扩展
    如何编写整洁的Qml代码
    Linux环境,4个版本的微信对比
    Oracle 按照 IN的顺序排序结果集
    __VA_ARGS__的用法
    手写Web图片懒加载~
    Selenuim+Python之元素定位总结及实例说明
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1488862.html
Copyright © 2020-2023  润新知