방법: XML 웹 서버 컨트롤의 XML 데이터 변환

Visual Studio 2010

업데이트: 2007년 11월

XSLT(XSL transformations) 스타일시트(.xslt 또는 .xsl 파일)는 소스 XML 문서의 내용을 특정 사용자, 미디어 또는 클라이언트를 위해 특별히 제작된 프레젠테이션으로 변환하는 데 사용됩니다. Xml 웹 서버 컨트롤의 XML 데이터를 변환하는 방법은 두 가지입니다.

  • 외부 .xslt 파일을 가리켜서 변환을 XML 문서에 자동으로 적용합니다.

  • XslTransform 형식의 개체인 변환을 XML 문서에 적용합니다.

두 방법 모두 결과는 같으므로 응용 프로그램에서 편리한 방법을 선택하면 됩니다. 변환이 .xsl 또는 .xslt 파일 형식이면 파일을 쉽게 로드할 수 있습니다. 변환이 개체 형식이면 다른 프로세스에 의해 응용 프로그램으로 전달되므로 개체로 적용할 수 있습니다.

35b30hy4.alert_note(ko-kr,VS.100).gif참고:

XslTransform 클래스를 사용해도 .xsl 또는 .xslt 파일을 변환 인스턴스로 로드할 수 있습니다.

파일의 변환을 적용하려면

  1. Web Forms 페이지에 Xml 컨트롤을 추가합니다.

  2. Xml 컨트롤의 TransformSource 속성을 XSLT 문서에 대한 경로로 설정합니다.

    35b30hy4.alert_note(ko-kr,VS.100).gif참고:

    응용 프로그램이 실행될 때는 XML 파일을 읽을 수 있는 충분한 권한이 있는지 확인해야 합니다.

    다음 코드 예제에서는 파일의 변환을 Xml1이라는 Xml 컨트롤에 적용하는 방법을 보여 줍니다.

    Xml1.TransformSource = "mystyle.xsl"
    

    Xml1.TransformSource = "mystyle.xsl";
    

XslTransform 개체의 변환을 적용하려면

  1. XslTransform 클래스의 인스턴스를 만듭니다.

  2. Xml 컨트롤의 Transform 속성을 변환 인스턴스로 설정합니다.

    다음 코드 예제에서는 변환 클래스의 인스턴스를 만들고 이 인스턴스를 사용하여 변환을 개체에 적용하는 방법을 보여 줍니다. 이 예제에서는 XML 문서와 변환을 모두 파일에서 읽지만 실제 응용 프로그램에서는 두 개체 모두 다른 구성 요소에서 가져올 수 있습니다. 변환은 페이지를 로드하는 즉시 적용됩니다.

    Private Sub Page_Load(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles MyBase.Load
       Dim doc As System.Xml.XmlDocument = New System.Xml.XmlDocument()
       doc.Load(Server.MapPath("MySource.xml"))
       Dim trans As System.Xml.Xsl.XslTransform = _
          New System.Xml.Xsl.XslTransform
       trans.Load(Server.MapPath("MyStyle.xsl"))
       Xml1.Document = doc
       Xml1.Transform = trans
    End Sub
    

    private void Page_Load(object sender, System.EventArgs e)
    {
        System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
        doc.Load(Server.MapPath("MySource.xml"));
        System.Xml.Xsl.XslTransform trans = new 
           System.Xml.Xsl.XslTransform();
        trans.Load(Server.MapPath("MyStyle.xsl"));
        Xml1.Document = doc;
        Xml1.Transform = trans;
    }
    
표시: