XmlDataSource.TransformFile Proprietà

Definizione

Specifica il nome di un file XSL (Extensible Stylesheet Language), con estensione XSL, che definisce una trasformazione XSLT da eseguire sui dati XML gestiti dal controllo XmlDataSource.

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

Valore della proprietà

Percorso fisico assoluto o relativo del file del foglio di stile XSL che definisce una trasformazione XML da eseguire sui dati contenuti nelle proprietà Data o DataFile. Il valore predefinito è Empty.

Eccezioni

È in corso il caricamento del documento.

Esempio

Nell'esempio di codice seguente viene illustrato come utilizzare un XmlDataSource controllo e un TreeView controllo per visualizzare i dati XML trasformati in un modulo Web. La trasformazione viene eseguita utilizzando il foglio di stile indicato dalla TransformFile proprietà . Facoltativamente, è possibile specificare argomenti di trasformazione per il foglio di stile utilizzando un oggetto XsltArgumentList. Per altre informazioni, vedere la proprietà 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>

Il file XML nell'esempio di codice contiene i dati seguenti:

<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>  

Il foglio di stile XSL che esegue la trasformazione XML ha la struttura seguente:

<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>  

Commenti

Se vengono impostate entrambe le TransformFile proprietà e Transform , la TransformFile proprietà ha la precedenza e i dati nel file del foglio di stile XSL (con estensione xsl) vengono utilizzati anziché gli elementi del foglio di stile specificati nella Transform proprietà . Se un'espressione XPath viene impostata utilizzando la XPath proprietà , viene applicata dopo la trasformazione dei dati XML.

Se si modifica il valore della Transform proprietà, viene generato l'evento DataSourceChanged . Se la memorizzazione nella cache è abilitata e si modifica il valore di Transform, la cache viene invalidata.

Nota

La XmlDataSource classe usa la classe deprecata XslTransform per eseguire trasformazioni XSL. Se si desidera utilizzare le caratteristiche del foglio di stile introdotte dopo la deprecazione della XslTransform classe, applicare manualmente le trasformazioni usando la XslCompiledTransform classe .

Si applica a

Vedi anche