XmlDataSource.TransformFile Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает имя файла расширяемого языка таблицы стилей (XSL), который определяет преобразование XSLT, которое определяет преобразование XSLT, выполняемое для XML-данных, управляемых элементом 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
Значение свойства
Абсолютный физический путь или относительный путь к файлу таблицы стилей XSL, который определяет преобразование XML для выполнения данных, содержащихся в Data или DataFile свойствах. Значение по умолчанию — Empty.
Исключения
Документ загружается.
Примеры
В следующем примере кода показано, как использовать XmlDataSource элемент управления и TreeView элемент управления для отображения преобразованных XML-данных в веб-форме. Преобразование выполняется с помощью таблицы стилей, указанной свойством TransformFile . При необходимости можно указать аргументы преобразования для таблицы стилей с помощью аргумента XsltArgumentList. Дополнительные сведения см. в свойстве 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>
XML-файл в примере кода содержит следующие данные:
<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>
Таблица стилей XSL, которая выполняет преобразование XML, имеет следующую структуру:
<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>
Комментарии
TransformFile Transform Если заданы оба свойства, свойство имеет приоритет, TransformFile а данные в файле таблицы стилей XSL (XSL) используются вместо элементов таблицы стилей, указанных в свойствеTransform. Если выражение XPath задано с помощью XPath свойства, оно применяется после преобразования XML-данных.
При изменении значения Transform свойства DataSourceChanged вызывается событие. Если кэширование включено и вы изменяете значение Transform, кэш недействителен.
Замечание
Класс XmlDataSource использует устаревший XslTransform класс для выполнения преобразований XSL. Если вы хотите использовать функции таблицы стилей, которые были представлены после XslTransform отмены класса, примените преобразования вручную с помощью XslCompiledTransform класса.