Postupy: Příležitostí transformace XSLT aplikace .NET

Překlady článku Překlady článku
ID článku: 320847 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek demonstruje příležitostí transformace XSLT (XSL TRANSFORMATION) v aplikacích .NET. Termín "Kanálů" v kontextu transformace XSLT, je proces, kterým data ve zdrojovém dokumentu XML (Extensible Markup Language) přírůstkově transformována sekvencí předlohy se dvěma nebo více XSLT styly generovat konečný výstup požadované. Během procesu generovaných každý zprostředkující fáze příležitostí transformace výstupu se používá jako vstup do následující fáze všechny způsob prostřednictvím transformace konečné fáze, které generuje výstup, který chcete.

Třídy .NET Framework v System.Xml.Xsl, System.Xml.XPath a obory názvů System.IO lze programově příležitostí transformace XSLT v aplikacích .NET. V následujících částech tohoto článku poskytnout pokyny vám pomohou implementovat a prozkoumejte proces použití kanálů transformace XSLT v aplikaci ASP.NET. Ilustrované pojem může také použita a použít v jiných typů aplikací .NET mají příležitostí transformace XSLT.

Vytvoření a instalace aplikace Sample ASP.NET

  1. Použití Visual Studio .NET k vytvoření nového projektu aplikace Microsoft Visual Basic .NET ASP.NET Web s názvem "XSLTPipelineDemo" (bez uvozovek).
  2. Vytvořit a přidat dokument XML, které se nazývá "Employees.xml" (bez uvozovek) projektu použít následující kód:
    <?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. Vytvořit a přidat šablony stylů nazývá "sortEmployees.xslt" (bez uvozovek) k projektu XSLT, použijte následující kód. Tato šablona stylů obsahuje kód XSLT řazení dat v dokumentu XML Employees.xml (v sestupném pořadí název řady zaměstnance, název a řady prvek). Výstup je generována při použití této šablony stylů je seřazené verze zdrojová XML data:
    <?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. Následující kód použít k vytvoření a přidání šablony stylů nazývá "EmployeesHTMLTable.xslt" (bez uvozovek) projektu XSLT. Tato šablona stylů obsahuje kód XSLT pro transformaci zdrojová data XML zaměstnance (obsažené v dokumentu XML Employees.xml nebo seřazené XML generovaných při použití stylů XSLT sortEmployees.xsl dokumentu XML Employees.xml) tabulky jazyk HTML (HTML):
    <?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. Můžete použít obě předlohy se styly XSLT nezávisle jeden na druhém souboru Employees.xml. Použití sortEmployees.xsl Seřadí data v souboru Employees.xml při použití employeesHTMLTable.xsl generuje reprezentace tabulky HTML zdroje XML. Získání reprezentace tabulky HTML dat seřazeny v sestupném pořadí podle názvu řady příležitostí těchto dvou transformace XSLT (nejprve použít sortEmployees.xsl souboru Employees.xml a potom použít employeesHTMLTable.xsl výstup generovaný první transformace).
  6. Zkopírujte a vložte následující kód v proceduře události Page_LoadWebForm1.aspx implementovat výše popsaných použití kanálů:
    '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. Uložit a vytvořit řešení.

Testovat aplikace Sample ASP.NET

  1. Spustit aplikaci ASP.NET XSLTPiplelineDemo spustit a zobrazit v prohlížeči WebForm1.aspx.
  2. Kód v proceduře události Page_LoadWebForm1.aspx spustí transformace XSLT a generuje výstup ve formuláři Tabulka HTML, který zobrazí seřazené (v sestupném pořadí na základě názvu řady) výpis zaměstnanců.
  3. Zavřete okno prohlížeče ukončete aplikaci ASP.NET.

Vlastnosti

ID článku: 320847 - Poslední aktualizace: 4. září 2003 - Revize: 3.2
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.1
Klíčová slova: 
kbmt kbbcl kbhowtomaster KB320847 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:320847

Dejte nám zpětnou vazbu

 

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