Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server
Azure SQL Database
Dalam contoh ini, kueri SQL dijalankan terhadap database AdventureWorks. Transformasi XSL diterapkan ke hasil kueri untuk menghasilkan tabel dua kolom nama depan dan belakang karyawan.
Properti XslPath dari objek SqlXmlCommand digunakan untuk menentukan file XSL dan jalur direktorinya.
Catatan
Dalam kode, Anda harus memberikan nama instans Microsoft SQL Server di string koneksi.
using System;
using Microsoft.Data.SqlXml;
using System.IO;
class Test
{
static string ConnString = "Provider=SQLOLEDB;Server=(local);database=AdventureWorks;Integrated Security=SSPI";
public static int testXSL()
{
//Stream strm;
SqlXmlCommand cmd = new SqlXmlCommand(ConnString);
cmd.CommandText = "SELECT TOP 20 FirstName, LastName FROM Person.Contact FOR XML AUTO";
cmd.XslPath = "MyXSL.xsl";
cmd.RootTag = "root";
using (Stream strm = cmd.ExecuteStream()){
using (StreamReader sr = new StreamReader(strm)){
Console.WriteLine(sr.ReadToEnd());
}
}
return 0;
}
public static int Main(String[] args)
{
testXSL();
return 0;
}
}
Ini adalah lembar gaya XSL yang dapat Anda gunakan untuk menguji aplikasi:
<?xml version='1.0' encoding='UTF-8'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<xsl:template match = '*'>
<xsl:apply-templates />
</xsl:template>
<xsl:template match = 'Person.Contact'>
<TR>
<TD><xsl:value-of select = '@FirstName' /></TD>
<TD><B><xsl:value-of select = '@LastName' /></B></TD>
</TR>
</xsl:template>
<xsl:template match = '/'>
<HTML>
<HEAD>
<STYLE>th { background-color: #CCCCCC }</STYLE>
</HEAD>
<BODY>
<TABLE border='1' style='width:300;'>
<TR><TH colspan='2'>Contacts</TH></TR>
<TR><TH >First name</TH><TH>Last name</TH></TR>
<xsl:apply-templates select = 'root' />
</TABLE>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>
Untuk menguji contoh ini, Anda harus menginstal Microsoft .NET Framework di komputer Anda.
Untuk menguji aplikasi
Simpan lembar gaya XSL dalam file (MyXSL.xsl).
Simpan kode C# (DocSample.cs) yang disediakan dalam contoh ini di folder yang sama tempat lembar gaya disimpan.
Kompilasi kode. Untuk mengkompilasi kode di prompt perintah, gunakan:
csc /reference:Microsoft.Data.SqlXML.dll DocSample.csIni membuat executable (DocSample.exe).
Pada prompt perintah, jalankan DocSample.exe.
Menerapkan Transformasi XSL di .NET Framework
Alih-alih menerapkan transformasi XSL di tingkat tengah, seperti yang dijelaskan sebelumnya, Anda dapat menerapkan transformasi XSL di sisi klien (dalam .NET Framework). Kode C# yang direvisi berikut menunjukkan bagaimana transformasi XSL diterapkan dalam .NET Framework.
Catatan
Dalam kode, Anda harus memberikan nama instans SQL Server di string koneksi.
using System;
using System.Xml;
using Microsoft.Data.SqlXml;
using System.IO;
using System.Xml.XPath;
using System.Xml.Xsl;
class Test
{
static string ConnString = "Provider=SQLOLEDB;Server=(local);database=AdventureWorks;Integrated Security=SSPI";
public static int testXSL()
{
//Stream strm;
SqlXmlCommand cmd = new SqlXmlCommand(ConnString);
cmd.CommandText = "SELECT TOP 20 FirstName, LastName FROM Person.Contact FOR XML AUTO";
cmd.RootTag = "root";
using (Stream strm = cmd.ExecuteStream()){
XmlReader reader = new XmlReader(strm);
XPathDocument xd = new XPathDocument(reader, XmlSpace.Preserve);
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("MyXSL.xsl");
XmlWriter writer = XmlWriter.Create("xslt_output.html");
xslt.Transform(xd, writer);
reader.Close();
writer.Close();
}
return 0;
}
public static int Main(String[] args)
{
testXSL();
return 0;
}
}