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

本文介绍如何使用 C# 和 XSLT 将 XML 文档转换为 HTML。通过示例展示了具体的 XML 和 XSLT 文件内容,并提供了 C# 实现方法。最终将 XML 结构化数据以易于阅读的 HTML 格式展现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

来自:http://outofmemory.cn/code-snippet/1264/c-usage-XSLT-jiang-xml-document-switch-html-document

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>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值