我把DATASET里的数据写到了一个XML文件里,现在想将这个XML文件转换为HTML格式, 该如何实现了,希望大家帮下忙我该如何做?
解决方案 »
- 菜鸟求助 getword 取词
- C# 批量打印
- 在C#语言下,怎么向一个Byte[]数组中插入一些字符
- C#可以将Xml文件转成字符串
- C# 的 win32 API调用时常数问题!哪位路过兄弟看下!谢谢!
- 自定义属性UserControl,如何发送给EditorAttribute一个值?
- 何如让html代码整齐排列?
- C# 3.0 新特性讨论
- 如何获得Reporting Server 2005上的报表及目录列表?
- SqlDataAdapter.Update到底能不能更新没有主键的表,应该怎样做?如果没有主键就不能更新,那么SqlDataAdapter还有什么用?
- winform把一个listview的内容全部复制到另一个listview.有好的办法吗?
- 为什么不能赋值,有关enum
ms-help://MS.MSDNQTR.2003FEB.2052/xmlsdk30/htm/xmcongettingstartedwithxslt.htm
市面上关于xslt的书非常不少
如何实现最好?我想到了用XML保存DATASET里的数据,然后再转换为HTML发送个客户。但不知道这个如何转换
Dim objConn As OracleConnection
Dim objDataAdapter As OracleDataAdapter
Dim strConn As String = "user id=scott;password=tiger;data source=orcl"
Dim strSql As String
Dim ds As DataSet
Dim objXmlDataDoc As XmlDataDocument
Try
objConn = New OracleConnection(strConn)
ds = New DataSet("DeptEmp") strSql = "select * from emp"
objDataAdapter = New OracleDataAdapter(strSql, objConn)
objDataAdapter.Fill(ds, "Employee") strSql = "select * from dept"
objDataAdapter.SelectCommand.CommandText = strSql
objDataAdapter.Fill(ds, "Dept") ds.CaseSensitive = False
ds.Relations.Add("DeptEmployees", _
ds.Tables("Dept").Columns("DeptNo"), _
ds.Tables("Employee").Columns("DeptNo")).Nested = True
objXmlDataDoc = New XmlDataDocument
objXmlDataDoc.LoadXml(ds.GetXml())
Dim objXslTran As XslTransform = New XslTransform
objXslTran.Load("E:\Visual Studio Project\ADO.NET\Demo_DataSet_Xml\DeptEmp.xslt")
Dim writer As XmlTextWriter = New XmlTextWriter("DeptEmp.html", System.Text.Encoding.UTF8)
objXslTran.Transform(objXmlDataDoc, Nothing, writer, Nothing)
writer.Close()
OpenHtml("DeptEmp.html")
Catch ex As Exception
Console.WriteLine(ex.Message)
Console.ReadLine()
End Try
End Sub Private Sub OpenHtml(ByVal strHtmlName As String)
Dim strPath As String = Path.Combine(System.Environment.CurrentDirectory, strHtmlName)
Process.Start("IExplore.exe", strPath)
End Sub注意:Dim writer As XmlTextWriter = New XmlTextWriter("DeptEmp.html", System.Text.Encoding.UTF8)最后生成 html 文件。--------------------------
DeptEmp.xslt
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp " ">
]>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="DeptEmp">
<HTML>
<head>
<STYLE>
BODY {font-family:verdana;font-size:9pt}
TD {font-size:8pt}
</STYLE>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<BODY>
<TABLE BORDER="1">
<xsl:apply-templates select="Dept"/>
</TABLE>
</BODY>
</HTML>
</xsl:template><xsl:template match="Dept">
<TR bgcolor="#cccccc"><TD>
<xsl:value-of select="DEPTNO"/>, <xsl:value-of select="DNAME"/>, <xsl:value-of select="LOC"/><BR/>
</TD></TR>
<TR><TD>
<xsl:apply-templates select="Employee"/>
</TD></TR>
</xsl:template><xsl:template match="Employee">
<TABLE BORDER="1">
<TR><TD valign="top"><B>EMPNO:</B></TD><TD valign="top"><xsl:value-of select="EMPNO"/> </TD></TR>
<TR><TD valign="top"><B>ENAME:</B></TD><TD valign="top"><xsl:value-of select="ENAME"/> </TD></TR>
<TR><TD valign="top"><B>MGR:</B></TD><TD valign="top"><xsl:value-of select="MGR"/> </TD></TR>
<TR><TD valign="top"><B>HIREDATE:</B></TD><TD valign="top"><xsl:value-of select="HIREDATE"/> </TD></TR>
<TR><TD valign="top"><B>SAL:</B></TD><TD valign="top"><xsl:value-of select="SAL"/> </TD></TR>
<TR><TD valign="top"><B>COMM:</B></TD><TD valign="top"><xsl:value-of select="COMM"/> </TD></TR>
</TABLE>
</xsl:template>
</xsl:stylesheet>
是通过手写 代码吗!
请问谁有谁有这样的例子!
如何实现最好?我想到了用XML保存DATASET里的数据,然后再转换为HTML发送个客户。但不知道这个如何转换
------------------------------我现在换个思路,我不将结果保存在XML,然后在转换为HTML; 因为当我执行完查询我的页面上已经有了这个带有数据的DATAGRID.我能否截取到这个DATAGRID的HTML呢?
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
//或者是一个文件流,那么你的DataGrid就可以输出到HTML里
2. 将目标数据绑定到输入流输出
this.RenderControl(oHtmlTextWriter);
//this 表示输出本页,你也可以绑定datagrid,或其他支持obj.RenderControl()属性的控件
{
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
dg.RenderControl(oHtmlTextWriter); try
{ System.Web.Mail.MailMessage mymail = new System.Web.Mail.MailMessage();
mymail.From = "[email protected]";
mymail.To = mailadress;
mymail.Subject = resultname;
mymail.Priority = MailPriority.Low;
mymail.BodyFormat = MailFormat.Html;
mymail.BodyEncoding = System.Text.Encoding.UTF8;
mymail.Body = oStringWriter.ToString();
SmtpMail.Send(mymail);
}
catch (Exception ee)
{
throw ee;
}
}