| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
Blake36Q
9年前发布

c#使用XSLT将xml文档转换为html文档

c#使用XSLT将xml文档转换为html文档

使用xslt可以将xml文档转成html,如下c#函数:

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

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>