Sdílet prostřednictvím


XmlDataSource.TransformFile Vlastnost

Definice

Určuje název souboru souboru XSL (Extensible Stylesheet Language) (.xsl), který definuje transformaci XSLT, která se má provést s daty XML spravovanými ovládacím XmlDataSource prvku.

public:
 virtual property System::String ^ TransformFile { System::String ^ get(); void set(System::String ^ value); };
public virtual string TransformFile { get; set; }
member this.TransformFile : string with get, set
Public Overridable Property TransformFile As String

Hodnota vlastnosti

Absolutní fyzická cesta nebo relativní cesta souboru šablony stylů XSL, která definuje transformaci XML, která se má provést s daty obsaženými v objektech Data nebo DataFile vlastnostech. Výchozí hodnota je Empty.

Výjimky

Dokument se načítá.

Příklady

Následující příklad kódu ukazuje použití XmlDataSource ovládacího prvku a TreeView ovládacího prvku k zobrazení transformovaných dat XML ve webovém formuláři. Transformace se provádí pomocí šablony stylů označené vlastností TransformFile . Volitelně můžete zadat transformační argumenty šablony stylů pomocí .XsltArgumentList Další informace najdete ve vlastnosti TransformArgumentList.

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>

    <form id="form1" runat="server">
      <asp:XmlDataSource
        id="XmlDataSource1"
        runat="server"
        datafile="bookstore.xml"
        transformfile="bookstore.xsl"/>

      <!- TreeView uses hierachical data, so the
          XmlDataSource uses an XmlHierarchicalDataSourceView
          when a TreeView is bound to it. -->

      <asp:treeview
        id="TreeView1"
        runat="server"
        datasourceid="XmlDataSource1">
        <databindings>
          <asp:treenodebinding depth="1" datamember="genre"
             textfield="name" valuefield="name"/>
          <asp:treenodebinding depth="2" datamember="book"
            textfield="title" valuefield="ISBN"/>
          <asp:treenodebinding depth="3" datamember="chapter"
            textfield="name" valuefield="num"/>
        </databindings>
      </asp:treeview>

    </form>
    
  </body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>

    <form id="form1" runat="server">
      <asp:xmldatasource
        id="XmlDataSource1"
        runat="server"
        datafile="bookstore.xml"
        transformfile="bookstore.xsl"/>

      <!- TreeView uses hierachical data, so the
          XmlDataSource uses an XmlHierarchicalDataSourceView
          when a TreeView is bound to it. -->

      <asp:treeview
        id="TreeView1"
        runat="server"
        datasourceid="XmlDataSource1">
        <databindings>
          <asp:treenodebinding depth="1" datamember="genre"
             textfield="name" valuefield="name"/>
          <asp:treenodebinding depth="2" datamember="book"
            textfield="title" valuefield="ISBN"/>
          <asp:treenodebinding depth="3" datamember="chapter"
            textfield="name" valuefield="num"/>
        </databindings>
      </asp:treeview>

    </form>
  </body>
</html>

Soubor XML v příkladu kódu obsahuje následující data:

<bookstore>
   <genre name="fiction">
     <book ISBN="0000000000">
       <title>Secrets of Silicon Valley</title>
       <price>12.95</price>
       <chapters>
         <chapter num="1" name="Introduction" />
         <chapter num="2" name="Body" />
         <chapter num="3" name="Conclusion" />
       </chapters>
     </book>
   </genre>
   <genre name="novel">
     <book genre="novel" ISBN="1111111111">
       <title>Straight Talk About Computers</title>
       <price>24.95</price>
       <chapters>
         <chapter num="1" name="Introduction" />
         <chapter num="2" name="Body" />
         <chapter num="3" name="Conclusion" />
       </chapters>
     </book>
   </genre>
</bookstore>

Šablona stylů XSL, která provádí transformaci XML, má následující strukturu:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:template match="bookstore">
   <bookstore>
     <xsl:apply-templates select="genre"/>
   </bookstore>
 </xsl:template>
 <xsl:template match="genre">
   <genre>
     <xsl:attribute name="name">
       <xsl:value-of select="@name"/>
     </xsl:attribute>
     <xsl:apply-templates select="book"/>
   </genre>
 </xsl:template>
 <xsl:template match="book">
   <book>
     <xsl:attribute name="ISBN">
       <xsl:value-of select="@ISBN"/>
     </xsl:attribute>
     <xsl:attribute name="title">
       <xsl:value-of select="title"/>
     </xsl:attribute>
     <xsl:attribute name="price">
       <xsl:value-of select="price"/>
     </xsl:attribute>
     <xsl:apply-templates select="chapters/chapter" />
   </book>
 </xsl:template>
 <xsl:template match="chapter">
   <chapter>
     <xsl:attribute name="num">
       <xsl:value-of select="@num"/>
     </xsl:attribute>
     <xsl:attribute name="name">
       <xsl:value-of select="@name"/>
     </xsl:attribute>
     <xsl:apply-templates/>
   </chapter>
 </xsl:template>
</xsl:stylesheet>

Poznámky

Pokud jsou nastaveny TransformFile vlastnosti i Transform vlastnosti, TransformFile má tato vlastnost přednost a data v souboru šablony stylů XSL (.xsl) se používají místo prvků šablony stylů zadaných ve Transform vlastnosti. Pokud je výraz XPath nastaven pomocí XPath vlastnosti, použije se po transformaci dat XML.

Pokud změníte hodnotu Transform vlastnosti, DataSourceChanged vyvolá se událost. Pokud je ukládání do mezipaměti povolené a změníte hodnotu Transform, mezipaměť se zneplatní.

Poznámka:

Třída XmlDataSource používá zastaralou XslTransform třídu k provádění transformací XSL. Pokud chcete použít funkce šablony stylů, které byly zavedeny po XslTransform vyřazení třídy, použijte transformace ručně pomocí XslCompiledTransform třídy.

Platí pro

Viz také