VB 2010 (41)XSLT转换

XSLT 转换

https://docs.microsoft.com/zh-cn/dotnet/standard/data/xml/xslt-transformations

可扩展样式表语言转换 (XSLT) 可以将源 XML 文档的内容转换为另一个格式或结构不同的文档。 例如,可以使用 XSLT 将 XML 转换为在网站上使用的 HTML 或转换为只包含应用程序所需字段的文档。 此转换过程由 W3C XSL 转换 (XSLT) 版本 1.0 建议规定。

XslCompiledTransform 类是 .NET 中的 XSLT 处理器。 XslCompiledTransform 类支持 W3C XSLT 1.0 建议

 备注

XslTransform 类在 .NET Framework 2.0 版中已过时。 XslCompiledTransform 类是 XSLT 引擎的新实现。 它包括性能改进和新的安全功能。 建议的做法是使用 XslCompiledTransform 类创建 XSLT 应用程序。

使用 XslCompiledTransform 类
提供如何使用 XslCompiledTransform 类的信息。

从 XslTransform 类迁移
讨论如何从 XslTransform 类迁移代码。

XSLT 编译器 (xsltc.exe)
提供有关如何使用 XSLT 编译器的信息。

XslTransform 类的 XSLT 转换
提供如何使用 XslTransform 类的信息。

引用

XslCompiledTransform
XsltArgumentList
XsltSettings

XML 文档和数据

    XSLT是一种把XML文档转换为另一种格式的语言。XSLT的一个常见用法是把XML转换为HTML,使XML文档能可视化地显示出来。XSL转换的好处在于它是使用一种替代语言(XSLD进行XML转换,避免了源代码、SQL命令或者其他XML生成机制的重写。
    从概念上来讲,XSLT比较简单。扩展名为xslt的文件描述了应用于某个XML文件的变化(转换)。 XSLT处理器使用XSLT文件对源XML文件进行转换。System.XmI.Xsl.XsITransfonn类就是这样的一个XSLT处理器。
    Visual Studio还有处理XSLT的一些功能。其IDE支持XSLT数据断点和XSLT调试。另外,使用新的命令行样式表编译器XSLTC.exe,可以把XSLI’样式表编译为程序集a
    XSLT文件本身就是一个XML文档。用于编写XSLT文件的命令有几十个,常用的XSLT元素(命令):

  • stylesheet  该元素标志XSLT文件中样式表(XSL)的开始。
  • template  该元素表示一个用于生成指定输出的可重用模板。在特定的环境下,使用源文档中指定类型的节点可以生成该输出口例如,文本<xsl: template match="/">为指定的转换模板选择所有的根节点("/")。只要在源文档中找到匹配的元素,就应用模板。
  • for-each   该元素将同一个模板应用于指定集的每一个节点。前面说明了一个可以序列化的类(FilmOrderList),该类含有一个电影订单数组。假定在序列化FilmOrderList时生成了XML文档,处理每个已序列化的电影订单就可以使用如下代码:
  • <xsl : for-each   select   =   " FilmOrderList/multiFilmOrders/FilmOrder">
  • value-of  该元素以文本形式获取指定节点的值,并将它插入到文档中到中。例如,<xsl:value-of select "name"/>将获取XML元素<name>的值,并将它插入到转换产生的文档中。

准备一个XML文件:filmorama.xml,内容如下

<?xml version="1.0" encoding="gb2312"?>///要加上这句才能显示中文
<FilmOrderList>
  <FilmOrder id="101">
    <title>It</title>
    <Quantity>10</Quantity>
  </FilmOrder>
  <FilmOrder id="102">
    <title>can</title>
    <Quantity>10</Quantity>
  </FilmOrder>
  <FilmOrder id="103">
    <title>not</title>
    <Quantity>10</Quantity>
  </FilmOrder>
  <FilmOrder id="104">
    <title>display</title>
    <Quantity>10</Quantity>
  </FilmOrder>
  <FilmOrder id="105">
    <title>chinese</title>
    <Quantity>10</Quantity>
  </FilmOrder>
</FilmOrderList>

VS中添加并生成一个XSLT文件:DisplayOrders.xslt,内容如下:

<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version ="1.0">
  <xsl:template match="/" >
    <html>
      <head>
        <title>What people are ordering</title>
      </head>
      <body>
        <table border="l">
          <tr>
            <th>
              Film Name
            </th>
            <th>
              Film ID
            </th>
            <th>
              Quantity
            </th>
          </tr>
          <xsl:for-each select="//FilmOrder">
            <tr>
              <td>
                <xsl:value-of select="title"/>
              </td>
              <td>
                <xsl:value-of select="@id"/>
              </td>
              <td>
                <xsl:value-of select="Quantity"/>
              </td>
            </tr>
          </xsl:for-each>
        </table>
      </body>
    </html>

控件台代码:

Imports System.Xml.Xsl
Module Module1

    Sub Main()
        Dim xslt As New XslCompiledTransform
        Dim outputfile As String = "。。。\output.html"
        xslt.Load("。。。\DisplayOrders.xslt")
        xslt.Transform("。。。\filmorama.xml", outputfile)

        Process.Start(outputfile)
    End Sub

End Module
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值