NASıL YAPıLıR: Potansiyel satış XSLT dönüştürmeleri .NET uygulamalarında

Makale çevirileri Makale çevirileri
Makale numarası: 320847 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, .NET uygulamalarında XSL Dönüşümü (XSLT) dönüştürmelerini potansiyel satış gösterilmiştir. Bu terim "XSLT dönüştürmeleri bağlamında ardışık", kaynak Genişletilebilir Biçimlendirme Dili (XML) belgesindeki verileri artımlı olarak bir dizi son gerekli çıktı oluşturmak için iki veya daha fazla XSLT stil sayfaları tarafından dönüştürüldükten işlemidir. Istediğiniz çıktı biçimi ile son dönüştürme aşaması aşağıdaki aşamayı tüm için giriş oluşturur işlemi sırasında dönüştürme ardışık Ara her aşamasında tarafından üretilen çıktı kullanılır.

.NET Framework sınıflarını System.Xml.XslSystem.Xml.XPath ve System.ıo ad alanları içinde programatik olarak XSLT dönüştürmeleri, .NET uygulamalarında kanal için kullanılabilir. Bu makale aşağıdaki bölümleri, uygulamak ve ASP.NET uygulamasındaki XSLT dönüştürmeleri ardışık düzen oluşturma işlemi incelemek için yönergeler sağlar. Resimli kavramı ayrıca uygulanan ve XSLT dönüştürmeleri için potansiyel satış olan .NET uygulamaları başka türlerde, kullanılan.

Oluşturma ve örnek ASP.NET uygulama Kur

  1. Kullanımı Visual Studio yeni bir Microsoft Visual Basic .NET, ASP.NET Web uygulaması proje oluşturmak için .NET "XSLTPipelineDemo" (tırnak işaretleri olmadan) adlı.
  2. Projeye "Employees.xml" (tırnak işaretleri olmadan) adlı bir XML belgesini eklemek için şu kodu kullanın:
    <?xml version='1.0'?>
    <employees>
      <employee>
        <employeeId>1</employeeId>
        <name>
          <given>Nancy</given>
          <family>Davolio</family>
        </name>
      </employee>
      <employee>
        <employeeId>2</employeeId>
        <name>
          <given>Andrew</given>
          <family>Fuller</family>
        </name>
      </employee>
      <employee>
        <employeeId>3</employeeId>
        <name>
          <given>Janet</given>
          <family>Leverling</family>
        </name>
      </employee>  
    </employees>
    					
  3. "SortEmployees.xslt" (tırnak işaretleri olmadan) için proje adlı bir XSLT stil sayfası eklemek için şu kodu kullanın. Bu stil Employees.xml XML belgesindeki verileri sıralamak için XSLT kodunu içerir (azalan düzende çalışan, adı ve ailesi ailesi adına öğe). Bu stil uyguladığınızda, üretilen çıktı, XML veri kaynağını sıralanmış bir sürümüdür:
    <?xml version='1.0'?>
    
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    
    <xsl:param name="sortColumn" select="'family'"/>
    <xsl:param name="sortOrder" select="'descending'"/>
    
    
    <xsl:template match="employees">
       <employees>
    
       <xsl:apply-templates select="employee/name">  
           <xsl:sort select="./*[local-name() = $sortColumn]" order="{$sortOrder}"/>            
       </xsl:apply-templates>  
    
       </employees>
    </xsl:template> 
    
    <xsl:template match="employee/name">
      <employee>
    	  <xsl:copy-of select="parent::node()/*"/>
      </employee>  
    </xsl:template> 
    
    </xsl:stylesheet>
    					
  4. Projeye "EmployeesHTMLTable.xslt" (tırnak işaretleri olmadan) adlı bir XSLT stil sayfası eklemek için şu kodu kullanın. Bu stil (içerdiği Employees.xml XML belgesini veya sıralanmış XML, XSLT stil sayfası sortEmployees.xslEmployees.xml XML belgesine uygulandığında oluşturulan) çalışan bir XML veri kaynağına dönüştürmek için XSLT kodu için bir köprü metni biçimlendirme dili (HTML) tablosu içerir:
    <?xml version='1.0'?>
    
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    
    <xsl:template match="employees">
    	<HTML>
    	<BODY>
    	<TABLE BORDER="1">
    	<TR>
    	  <TH>Employee ID</TH>
    	  <TH>Employee Name</TH>
    	</TR>
    
    	<xsl:for-each select="employee">
    		<TR>
      		  <TD>
    		     <xsl:value-of select="employeeId"/>
    		  </TD>
    		  <TD>
    		     <xsl:value-of select="name/family"/>, <xsl:value-of select="name/given"/>
    		  </TD>
    		</TR>
    	</xsl:for-each>
    
    	</TABLE>
    	</BODY>
    	</HTML>   
    </xsl:template> 
    
    </xsl:stylesheet>
    
    					
  5. Employees.xml dosyaya her ikisi de birbirinden bağımsız olarak XSLT stil uygulayabilirsiniz. EmployeesHTMLTable.xsl uygulamak için XML kaynak HTML tablo sunumunu oluşturur ancak sortEmployees.xsl uygulama Employees.xml dosyasındaki verileri sıralar. HTML tablo gösterilişinin azalan düzende, ailesi adına göre sıralanan veri almak için <a0></a0>, bu iki XSLT dönüştürmeleri potansiyel satış (önce bu sortEmployees.xsl Employees.xml dosyaya uygulayın ve sonra employeesHTMLTable.xsl ilk dönüştürme tarafından oluşturulan çıktı).
  6. Yukarıda açıklanan ardışık uygulamak WebForm1.aspxPage_Load olay yordamında aşağıdaki kodu yapıştırın:
    'Load the source XML document (Employees.xml) into an XPathDocument object.
    
    Dim xmlDoc As New System.Xml.XPath.XPathDocument(Server.MapPath("employees.xml"))
    
    'Load the first stylesheet (sortEmployees.xslt) that sorts the data in employees.xml
    'into an XslTransform object.
    
    Dim xslt As New System.Xml.Xsl.XslTransform()
    xslt.Load(Server.MapPath("sortEmployees.xslt"))
    
    'Execute the first transformation and write the interim output (the sorted XML)
    'to a MemoryStream object. Using an in memory stream (as opposed to a FileStream object) 
    'to store the interim output generated by the first transformation is a better option from  
    'a performance standpoint as it avoids unnecessary disk I/O.
    
    Dim memStream As New System.IO.MemoryStream()
    xslt.Transform(xmlDoc, Nothing, memStream)
    
    'Reset the MemoryStream internal pointer to point to the 
    'beginning of the stream. This is required for the following line of 
    'code to be able to read the data from the memory stream.
    
    memStream.Position = 0
    
    'Load the interim sorted XML output in an XPathDocument object. 
    'Notice that a second XPathDocument object is created to do this. 'The reason for this is that the XPathDocument class does not implement a Load 'method (like the System.Xml.XmlDocument class) that can be used to re-load new XML data into an existing 
    'object instance. While a single XmlDocument object could have been used to execute the two pipelined 'transformations in this sample, it has not been chosen because the XPathDocument is highly optimized for XPath query 
    'execution and XSLT transformations. It is the recommended interface to use when programatically executing 
    'XSLT transformations in .NET applications.
    
    Dim interimDoc As New System.Xml.XPath.XPathDocument(memStream)
    
    'Load the second stylesheet(employeesHTMLTable.xslt)that transforms the sorted data to an HTML table
    'into the XslTransform object.
    
    xslt.Load(Server.MapPath("employeesHTMLTable.xslt"))
    
    'Execute the second transformation and stream the output directly to the 
    'ASP.Net Response object's OutputStream to display the results in the client browser.
    
    xslt.Transform(interimDoc, Nothing, Response.OutputStream)
    					
  7. Kaydedin ve bu çözümü olu?turun.

Örnek ASP.NET uygulama sınayın.

  1. XSLTPiplelineDemo ASP.NET uygulamasını başlatmak ve WebForm1.aspx tarayıcıda görüntülemek için çalıştırabilirsiniz.
  2. Kod, WebForm1.aspx <a1>Page_Load</a1> olay yordamındaki XSLT dönüştürmeleri çalışır ve bir sıralı (ailesi adına göre azalan düzende) görüntüleyen bir HTML tablosu biçiminde çıktısını üretir, çalışanları listeleniyor.
  3. ASP.NET uygulaması çıkmak için tarayıcı penceresini kapatın.

Özellikler

Makale numarası: 320847 - Last Review: 4 Eylül 2003 Perşembe - Gözden geçirme: 3.2
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.1
Anahtar Kelimeler: 
kbmt kbbcl kbhowtomaster KB320847 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:320847

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com