다음을 통해 공유


XmlDataSource.TransformFile 속성

정의

XmlDataSource 컨트롤에서 관리하는 XML 데이터에 대해 수행될 XSLT 변환을 정의하는 XSL(Extensible Stylesheet Language) 파일(.xsl)의 파일 이름을 지정합니다.

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

속성 값

Data 또는 DataFile 속성에 포함된 데이터에 수행할 XML 변환을 정의하는 XSL 스타일시트 파일의 절대 실제 경로나 상대 경로입니다. 기본값은 Empty입니다.

예외

문서를 로드하고 있는 경우

예제

다음 코드 예제에 사용 하는 방법을 보여 줍니다.는 XmlDataSource 컨트롤 및 TreeView 표시할 컨트롤 Web form에 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>  

XML 변환을 수행 하는 XSL 스타일 시트에는 다음과 같은 구조에 있습니다.

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

설명

모두를 TransformFileTransform 속성을 설정 합니다 TransformFile 속성이 우선 및 XSL 스타일 시트 파일 (.xsl)의 데이터에 지정 된 스타일 시트 요소 대신 사용 됩니다는 Transform 속성입니다. XPath 식을 사용 하 여 설정 된 경우는 XPath 속성을 XML 데이터를 변환한 후 적용 됩니다.

값을 변경 하는 경우는 Transform 속성을 DataSourceChanged 이벤트가 발생 합니다. 캐싱을 사용 하는 및의 값을 변경 하는 경우 Transform, 캐시를 무효화 합니다.

참고

합니다 XmlDataSource 클래스를 사용 하 여 사용 되지 않는 XslTransform XSL 변환을 수행 하는 클래스입니다. 이후 도입 된 스타일 시트 기능을 사용 하려는 경우는 XslTransform 클래스의 사용이 중단 되었으며, 사용 하 여 수동으로 변환을 적용 합니다 XslCompiledTransform 클래스입니다.

적용 대상

추가 정보