XmlDataSource.TransformFile Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt den Dateinamen einer XSL-Datei (Extensible Stylesheet Language) an, die eine XSLT-Transformation definiert, die für die vom XmlDataSource-Steuerelement verwalteten XML-Daten durchgeführt werden soll.
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
Eigenschaftswert
Der absolute physische Pfad oder der relative Pfad der XSL-Stylesheetdatei, die eine XML-Transformation definiert, die für die in der Data-Eigenschaft oder in der DataFile-Eigenschaft enthaltenen Daten ausgeführt werden soll. Der Standardwert ist Empty.
Ausnahmen
Das Dokument wird geladen.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie sie ein XmlDataSource Steuerelement und ein TreeView Steuerelement verwenden, um transformierte XML-Daten in einem Webformular anzuzeigen. Die Transformation wird mithilfe des von der TransformFile -Eigenschaft angegebenen Stylesheets ausgeführt. Sie können optional Transformationsargumente für das Stylesheet mithilfe eines XsltArgumentListangeben. Weitere Informationen finden Sie in den Ausführungen zur TransformArgumentList-Eigenschaft.
<%@ 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>
Die XML-Datei im Codebeispiel enthält die folgenden Daten:
<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>
Das XSL-Stylesheet, das die XML-Transformation ausführt, hat die folgende Struktur:
<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>
Hinweise
Wenn sowohl die TransformFile Eigenschaften als Transform auch festgelegt sind, hat die TransformFile Eigenschaft Vorrang, und die Daten in der XSL-Stylesheetdatei (XSL) werden anstelle der in der Transform -Eigenschaft angegebenen Stylesheetelemente verwendet. Wenn ein XPath-Ausdruck mithilfe der XPath -Eigenschaft festgelegt wird, wird er angewendet, nachdem die XML-Daten transformiert wurden.
Wenn Sie den Wert der Transform Eigenschaft ändern, wird das DataSourceChanged Ereignis ausgelöst. Wenn die Zwischenspeicherung aktiviert ist und Sie den Wert von Transformändern, wird der Cache ungültig.
Hinweis
Die XmlDataSource -Klasse verwendet die veraltete XslTransform Klasse, um XSL-Transformationen auszuführen. Wenn Sie Stylesheetfeatures verwenden möchten, die eingeführt wurden, nachdem die XslTransform Klasse veraltet wurde, wenden Sie die Transformationen manuell mithilfe der XslCompiledTransform -Klasse an.