当前位置:  编程技术>.net/c#/asp.net

基于XSLT调试的相关问题

    来源: 互联网  发布时间:2014-10-20

    本文导语:  新建控制台程序CAStudy.在应用程序中,添加books.xml,belowAvg.xsl 代码分别如下: books.xml       The Autobiography of Benjamin Franklin           Benjamin       Franklin         8.99         The Confidence Man          ...

新建控制台程序CAStudy.在应用程序中,添加books.xml,belowAvg.xsl 代码分别如下:

books.xml

 

    The Autobiography of Benjamin Franklin

   

      Benjamin

      Franklin

   

    8.99

 

 

    The Confidence Man

   

      Herman

      Melville

   

    11.99

 

 

    The Gorgias

   

      Plato

   

    9.99

 

books.xml一看就知道是一个bookstore,里面包含了三个book. 每个book都会有一些attribute和property.例如genre,publicationdate,ISBN 就是attribute.而诸如title,author,price 就是book的property 了。

belowAvg.xsl:

 

 

   

   

   

   

     

     

       

         

       

     

   

 

belowAvg.xsl:名字就代表了,小于平均值的xsl.

XSLT: 可扩展样式表语言转换Extensible Stylesheet Transformation (XSLT)

这个belowAvg.xsl 主要就是将book.xml 中小于平均值的那些book找出来,输出成xml。

match=”/”:这样就可以匹配三个book节点了。

接着声明3个变量,bookCount,bookTotal,在第三个变量中使用$符号来引用前面声明的变量得到平均值。

接着进行for-each的循环,在循环里面进行if 测试,测试的条件是price < $bookAverage. < 在xml里面是< lt 是less than 的意思,同理> 在xml里面是> gt 就是great than的意思。

接着进行copy-of 操作,”.” 代表的就是self::node(),也就是book节点。

 

调试xslt 有两种方式:

第一种:使用VS

打开xsl,可以发现菜单多了XML,点击XML菜单的调试XSLT,然后选择book.xml 就可以进行调试了。

同样F9设置断点,

第二种方法:使用代码.

class XmlXsltDemo

{

    private const string sourceFile = @"books.xml";

    private const string stylesheet = @"belowAvg.xsl";

    private const string outputFile = @"output.xml";

    public static void Main()

    {

        // Enable XSLT debugging.

        XslCompiledTransform xslt = new XslCompiledTransform(true);

        // Compile the style sheet.

        xslt.Load(stylesheet);

        // Execute the XSLT transform.

        FileStream outputStream = new FileStream(outputFile, FileMode.Append);

        xslt.Transform(sourceFile, null, outputStream);

    }

}

在这里由于使用的是相对路径,所以要将books.xml和belowAvg.xsl 属性修改如下:

还要将XslCompiledTransform xslt = new XslCompiledTransform(true);

参数传递为true,代表enableDebug.

就可以看到如下界面了:

 

使用代码调试的话,不需要设置断点,只要enableDebug为true的话,会自动在xsl中中断。

本人猜测估计是调用了Debugger.Break() 方法。


    
 
 

您可能感兴趣的文章:

  • XSLT调试器 xsldb
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 关于“Struts with XSLT and XML ”的Model2X的问题
  • 关于JSP,XML,XSLT的一个问题:Element type "taglib" must be declared.
  • 用tomcat在服务端用xslt解析xml生成html的中文问题!
  • java命名空间javax.xml.crypto.dsig接口transform的类成员方法: xslt定义及介绍
  • Apache2 XSLT filter
  • XSLT处理器 Xalan
  • mod-xslt
  • XSLT 转换框架 Butterfly
  • XSLTXQuery运行工具 Kernow
  • XSLT、XQuery处理器 Saxon
  • 怎么让xml在客户端用xslt解析呢?
  • 在servlet里面用xml和xslt合成html文件,在ie5里面能正常显示,ie6里面不能正常显示!
  • 在xslt中利用 contains(.,'ee')函数时怎样让该函数大小写不敏感!
  • Jsp结合XML+XSLT将输出转换为Html格式


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3