zoukankan      html  css  js  c++  java
  • c#使用XSLT将xml文档转换为html文档

    需要引用下面的命名空间:

    using System.Xml;  
    using System.Xml.Xsl;

    方法实现:

    public static string ConvertXML(XmlDocument InputXMLDocument, string XSLTFilePath  
    , XsltArgumentList XSLTArgs)  
    {  
       System.IO.StringWriter sw = new System.IO.StringWriter();  
       XslCompiledTransform xslTrans = new XslCompiledTransform();  
       xslTrans.Load(XSLTFilePath);  
       xslTrans.Transform(InputXMLDocument.CreateNavigator(), XSLTArgs, sw);  
       return sw.ToString();  
    }

    示例xml文件如下:

    <?xml version="1.0" encoding="utf-8" ?>
    <sexystars>
      <category name="Bollywood">
        <sexystar name="Antra mali" />
        <sexystar name="Deepika Padukone" />
        <sexystar name="Mandira Bedi" />
      </category>
      <category name="Hollywood">
        <sexystar name="Jennifer Lopez" />
        <sexystar name="Jessica Alba" />
      </category>
    </sexystars>

    示例xslt文件如下:

    <?xml version="1.0" encoding="UTF-8" ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output omit-xml-declaration="yes"/>
      <xsl:template match="sexystars">
        <div>
          <xsl:apply-templates select="category" />
        </div>
      </xsl:template>
      <xsl:template match="category">
        <h2>
          <xsl:value-of select="@name"/>
        </h2>
        <ul>
          <xsl:apply-templates select="sexystar" />
        </ul>
      </xsl:template>
      <xsl:template match="sexystar">
        <li>
          <xsl:value-of select="@name"/>
        </li>
      </xsl:template>
    </xsl:stylesheet>

    调用的c#代码:

    XmlDocument xDoc=new XmlDocument();  
    xDoc.Load(@"C:sample.xml");  
    string returnhtml = ConvertXML(xDoc, @"C:sample.xslt", new XsltArgumentList());

    将输入如下html:

    <div>
    <h2>Bollywood</h2>
      <ul>
        <li>Antra mali</li>
        <li>Deepika Padukone</li>
        <li>Mandira Bedi</li>
      </ul>
    <h2>Hollywood</h2>
      <ul>
        <li>Jennifer Lopez</li>
        <li>Jessica Alba</li>
      </ul>
    </div>
     
  • 相关阅读:
    用脚本保存prefab
    如何在Unity 3D中掷骰子
    转发收藏【原创】浅谈UGUI的ETC1+A的纹理压缩方案总结
    Unity鼠标拖拽控制人物的左右旋转
    蛋哥的学习笔记之-基于Unity的Shader编程:X-1 音乐水波特效
    xlua中hotfix简单实用
    tolua调用C#中的静态类
    scut和unity之间收发请求返回
    scut服务器unity配置
    HTTP网络请求
  • 原文地址:https://www.cnblogs.com/1175429393wljblog/p/5048009.html
Copyright © 2011-2022 走看看