Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Bu örnekte, AdventureWorks veritabanına karşı bir SQL sorgusu yürütülür. XSL dönüşümü, sorgu sonucuna uygulanarak çalışanların adı ve soyadlarının iki sütunlu tablosu oluşturulur.
SqlXmlCommand nesnesinin XslPath özelliği, XSL dosyasını ve dizin yolunu belirtmek için kullanılır.
Uyarı
Kodda, bağlantı dizisinde Microsoft SQL Server örneğinin adını belirtmeniz gerekir.
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;
}
}
Bu, uygulamayı test etmek için kullanabileceğiniz XSL stil sayfasıdır:
<?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>
Bu örneği test etmek için Microsoft .NET Framework'ün bilgisayarınızda yüklü olması gerekir.
Uygulamayı test etmek için
XSL stil sayfasını bir dosyada (MyXSL.xsl) kaydedin.
Bu örnekte verilen C# kodunu (DocSample.cs) stil sayfasının saklandığı klasöre kaydedin.
Kodu derleyin. Kodu komut isteğinde derlemek için şunları kullanın:
csc /reference:Microsoft.Data.SqlXML.dll DocSample.csBu, bir yürütülebilir (DocSample.exe) oluşturur.
Komut dizisinde, DocSample.exeçalıştırın.
.NET Framework'te XSL Dönüşümü Uygulanması
Daha önce anlatıldığı gibi orta seviyede bir XSL dönüşümü uygulamak yerine, istemci tarafında (.NET Framework'te) bir XSL dönüşümü uygulayabilirsiniz. Aşağıdaki revize edilmiş C# kodu, .NET Framework'te XSL dönüşümünün nasıl uygulandığını göstermektedir.
Uyarı
Kodda, bağlantı dizesinde SQL Server örneğinin adını belirtmeniz gerekir.
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;
}
}