Dreamweaver에서 서버측 XSL 변환을 수행하는 방법을 살펴봅니다. XSLT 페이지를 만들고 HTML 페이지를 XSLT 페이지로 변환합니다.

참고:

Dreamweaver CC 이상 버전에서 사용자 인터페이스가 간소화되었습니다. 따라서 이 문서에 설명된 옵션 중에 Dreamweaver CC 이상 버전에 없는 옵션이 있을 수 있습니다. 자세한 내용은 이 문서를 참조하십시오.

서버 측 XSL 변환을 수행하기 위한 워크플로

서버에서 서버 측 XSL 변환을 수행할 수 있습니다. XML 데이터를 표시하는 페이지를 작성하기 전에 먼저 서버 측 및 클라이언트측 XSL 변환과 웹 페이지에서 XML 및 XSL을 사용하는 방법을 참조하십시오.

참고:

서버는 서버 측 변환을 수행하도록 제대로 구성되어 있어야 합니다. 자세한 내용은 서버 관리자에게 문의하십시오.

서버 측 XSL 변환을 수행하는 일반적인 워크플로는 다음과 같습니다(각 단계는 해당 항목에서 설명합니다).

1. Dreamweaver 사이트를 설정합니다.

2. 서버 기술을 선택하고 애플리케이션 서버를 설정합니다.

3. 애플리케이션 서버를 테스트합니다.

예를 들어 처리해야 할 페이지를 만들고 애플리케이션 서버로 해당 페이지를 처리하는지 확인합니다.

4. XSLT 부분 또는 페이지를 만들거나 HTML 페이지를 XSLT 페이지로 변환합니다.

  • Dreamweaver 사이트에서 XSLT 부분이나 전체 XSLT 페이지를 만듭니다.

  • 기존 HTML 페이지를 전체 XSLT 페이지로 변환합니다.

5. XML 데이터 소스를 페이지에 연결합니다.

6. 데이터를 XSLT 부분이나 전체 XSLT 페이지에 바인딩하여 XML 데이터를 표시합니다.

7. 해당될 경우 반복 영역 XSLT 오브젝트를 XML 데이터 자리 표시자가 있는 표나 표 행에 추가합니다.

8. 참조를 삽입합니다.

  • 동적 페이지에 XSLT 부분에 대한 참조를 삽입하려면 XSL 변환 서버 비헤이비어를 사용합니다.

  • 동적 페이지에 전체 XSLT 페이지에 대한 참조를 삽입하려면 동적 페이지에서 모든 HTML 코드를 삭제한 다음 XSL 변환 서버 비헤이비어를 사용합니다.

9. 페이지 및 부분을 게시합니다.

동적 페이지와 XSLT 부분(또는 전체 XSLT 페이지) 모두를 애플리케이션 서버에 게시합니다. 로컬 XML 파일을 사용할 경우 이 파일도 게시해야 합니다.

10. 브라우저에서 동적 페이지를 봅니다.

이 경우 애플리케이션 서버가 XML 데이터를 변환하고 동적 페이지에 삽입한 후 브라우저에 표시합니다.

XSLT 페이지 만들기

웹 페이지에 XML 데이터를 표시할 수 있는 XSLT 페이지를 만들 수 있습니다. XSLT 부분을 만들거나 <body> 태그와 <head> 태그를 포함하는 XSLT 페이지인 전체 XSLT 페이지를 만들 수 있습니다. XSLT 부분을 만들 때는 body 태그나 head 태그가 없는 독립적인 파일을 만들게 되며, 이것은 나중에 동적 페이지에 삽입되는 간단한 코드 조각입니다.

참고:

기존 XSLT 페이지로 시작하는 경우 XML 데이터 소스를 해당 페이지에 연결해야 합니다.

  1. [파일] > [새로 만들기]를 선택합니다.
  2. [새 문서] 대화 상자에서 [빈 페이지] 범주를 선택하고 [페이지 유형] 열에서 다음 중 하나를 선택합니다.
    • 전체 XSLT 페이지를 만들려면 [XSLT(전체 페이지)]를 선택합니다.

    • XSLT 부분을 만들려면 [XSLT(부분)]을 선택합니다.

  3. [만들기]를 클릭하고 [XML 소스 찾기] 대화 상자에서 다음 중 하나를 수행합니다.
    • [컴퓨터 또는 LAN에서 로컬 파일 연결]을 선택하고 [검색] 버튼을 클릭한 후 컴퓨터에 있는 로컬 XML 파일을 찾아 선택하고 [확인]을 클릭합니다.
    • [인터넷에서 원격 파일 연결]을 선택하고 인터넷에 있는 XML 파일(RSS 피드의 파일 등)의 URL을 입력한 다음 [확인]을 클릭합니다.

    참고:

    [취소] 버튼을 클릭하면 연결된 XML 데이터 소스가 없는 새 XSLT 페이지가 생성됩니다.

    바인딩 패널이 XML 데이터 소스의 스키마로 채워집니다.

    바인딩 패널
    바인딩 패널

    다음 표에서는 나타날 수 있는 스키마의 다양한 요소에 대한 설명을 제공합니다.

    요소

    표시

    세부 정보

    <>

    필수적인 비반복 XML 요소

    부모 노드에 정확하게 한 번 표시되는 요소

    <>+

    XML 요소 반복

    부모 노드에 여러 번 표시되는 요소

    <>+

    옵션 XML 요소

    부모 노드에 나타나지 않거나 여러 번 나타나는 요소

    굵게 표시되는 요소 노드

    현재 컨텍스트 요소

    삽입 포인터가 반복 영역 안에 있을 경우 일반적으로 반복 요소

    @

    XML 속성

     

     

  4. [파일] > [저장]을 눌러 새 페이지를 .xsl(기본값) 또는 .xslt 확장명으로 저장합니다.

HTML 페이지를 XSLT 페이지로 변환

기존 HTML 페이지를 XSLT 페이지로 변환할 수도 있습니다. 예를 들어 XML 데이터를 추가하려는 미리 디자인된 정적 페이지가 있을 경우 XSLT 페이지를 만들어 처음부터 다시 디자인하는 대신 페이지를 XSLT 페이지로 변환할 수 있습니다.

  1. 변환할 HTML 페이지를 엽니다.
  2. [파일] > [변환] > [XSLT 1.0]을 선택합니다.

    문서 창에서 페이지 사본을 엽니다. 새 페이지는 .xsl 확장명으로 저장되는 XSL 스타일 시트입니다.

XML 데이터 소스 연결

기존 XSLT 페이지에서 시작하는 경우 또는 Dreamweaver로 새 XSLT 페이지를 만들 때 XML 데이터 소스를 연결하지 않은 경우에는 [바인딩] 패널을 사용하여 XML 데이터 소스를 연결해야 합니다.

  1. [바인딩] 패널([윈도우] > [바인딩])에서 XML 링크를 클릭합니다.
    [바인딩] 패널에서 XML을 클릭합니다.
    [바인딩] 패널에서 XML을 클릭합니다.

    참고:

    또는 [바인딩] 패널의 오른쪽 위 모서리에 있는 [소스] 링크를 클릭하여 XML 데이터 소스를 추가할 수도 있습니다.

  2. 다음 중 하나를 수행합니다.
    • [컴퓨터 또는 LAN에서 로컬 파일 연결]을 선택하고 [검색] 버튼을 클릭한 후 컴퓨터에 있는 로컬 XML 파일을 찾아 선택하고 [확인]을 클릭합니다.

    • [인터넷에서 원격 파일 연결]을 선택하고 인터넷에 있는 XML 파일(RSS 피드의 파일 등)의 URL을 입력합니다.

  3. [확인]을 클릭하여 [XML 소스 찾기] 대화 상자를 닫습니다.

    바인딩 패널이 XML 데이터 소스의 스키마로 채워집니다.

XSLT 페이지에 XML 데이터 표시

XSLT 페이지를 만들고 XML 데이터 소스에 연결했으면 페이지에 데이터를 바인딩할 수 있습니다. 이 작업을 수행하려면 XML 데이터 자리 표시자를 페이지에 추가한 다음 [XPath 표현식 작성기] 또는 속성 관리자를 사용하여 페이지에 표시하기 위해 선택한 데이터의 서식을 지정합니다.

  1. 연결된 XML 데이터 소스로 XSLT 페이지를 엽니다.
  2. (선택 사항) [삽입] > [표]를 선택하여 페이지에 표를 추가합니다. 표를 사용하면 XML 데이터를 쉽게 구성할 수 있습니다.

    참고:

    대부분의 경우 반복 영역 XSLT 오브젝트를 사용하여 페이지에 반복 XML 요소를 표시합니다. 이 경우 한 개 이상의 열로 구성된 단일 행 표를 만들거나, 표 머리글을 넣으려는 경우 행이 두 개인 표를 만들 수 있습니다.

  3. [바인딩] 패널에서 XML 요소를 선택한 다음 페이지 상에서 데이터를 삽입할 위치로 드래그합니다.
    [바인딩] 패널에서 XML 요소를 선택합니다.
    [바인딩] 패널에서 XML 요소를 선택합니다.

    페이지에 XML 데이터 자리 표시자가 표시됩니다. 자리 표시자는 괄호 안에 강조 표시되어 나타나며 XPath(XML Path Language) 구문을 사용하여 XML 스키마의 계층 구조를 설명합니다. 예를 들어 자식 요소인 title을 페이지로 드래그하면 이 요소는 부모 요소인 rss, channelitem을 갖게 되며 동적 내용 자리 표시자의 구문은 {rss/channel/item/title}가 됩니다.

    페이지에서 XML 데이터 자리 표시자를 더블 클릭하여 [XPath 표현식 작성기]를 엽니다. [XPath 표현식 작성기]를 사용하여 선택한 데이터의 서식을 지정하거나 XML 스키마에서 다른 항목을 선택할 수 있습니다.

  4. (선택 사항) XML 데이터 자리 표시자를 선택하고 속성 관리자나 [CSS 스타일] 패널을 사용하여 다른 내용 부분과 같이 스타일을 적용하여 XML 데이터에 스타일을 적용합니다. 또는 디자인 타임 스타일 시트를 사용하여 XSLT 부분에 스타일을 적용할 수 있습니다. 이러한 방법은 각기 고유의 장단점을 가지고 있습니다.
  5. [파일] > [브라우저에서 미리보기]를 선택하여 브라우저에서 작업 내용을 미리 확인합니다.

    참고:

    [브라우저에서 미리보기]를 사용하여 작업 내용을 미리 보면 Dreamweaver에서 애플리케이션 서버를 사용하지 않고 내부 XSL 변환이 수행됩니다.

반복 XML 요소 표시

반복 영역 XSLT 오브젝트를 사용하면 XML 데이터 소스의 반복 요소를 한 웹 페이지에 표시할 수 있습니다. 예를 들어 뉴스 피드로부터 기사 제목과 설명을 표시할 경우 이 뉴스 피드에 10~20개의 기사가 포함되어 있으면 각 제목과 설명은 XML 파일에서 반복 요소의 자식 요소가 됩니다.

디자인 뷰에서 XML 데이터 자리 표시자가 포함된 영역은 반복 영역으로 변경할 수 있습니다. 그러나 가장 일반적으로 사용되는 영역은 표, 표 행 또는 일련의 표 행입니다.

  1. 디자인 뷰에서 XML 데이터 자리 표시자가 들어 있는 영역을 선택합니다.

    표, 표 행 또는 텍스트의 단락 등 어떤 것이든지 선택할 수 있습니다.

    디자인 뷰
    디자인 뷰

    참고:

    페이지에서 영역을 정확하게 선택하려면 문서 창의 왼쪽 아래 모서리에 있는 태그 선택기를 사용할 수 있습니다. 예를 들어 영역이 표일 경우 페이지에서 표 안쪽을 클릭한 다음 태그 선택기에서 해당 태그를 클릭합니다.

  2. 다음 중 하나를 수행합니다.
    • [삽입] > [XSLT 오브젝트] > [반복 영역]을 선택합니다.

    • [삽입] 패널의 [XSLT] 범주에서 [반복 영역] 버튼을 클릭합니다.

  3. [XPath 표현식 작성기]에서 작은 플러스 기호로 표시되는 반복 요소를 선택합니다.
    XPath 표현식 작성기
    XPath 표현식 작성기

  4. [확인]을 클릭합니다.

    문서 창에서는 반복 영역 주위에 얇은 회색의 탭 외곽선이 나타납니다. [파일] > [브라우저에서 미리보기]를 선택하여 브라우저에서 작업 내용을 미리 확인하면, 회색 외곽선이 사라지고 선택한 부분은 확장되어 XML 파일에 해당 반복 요소가 나타납니다.

    페이지에 반복 영역 XSLT 오브젝트를 추가하면 문서 창에서 XML 데이터 자리표시자의 길이가 잘립니다. 이는 Dreamweaver에서 XML 데이터 자리 표시자의 XPath를 반복 요소의 경로에 대해 상대적으로 잘라내기 때문입니다.

반복 영역(XSL) 속성 설정

속성 관리자에서 다른 XML 노드를 선택하여 반복 영역을 만들 수 있습니다.

  1. [선택] 상자에 새 노드를 입력한 다음 번개 모양 아이콘을 누르고 XML 스키마 트리에서 나타나는 노드를 선택합니다.

반복 영역 XSLT 오브젝트 편집

영역에 반복 영역 XSLT 오브젝트를 추가한 후에는 속성 관리자를 사용하여 해당 오브젝트를 편집할 수 있습니다.

  1. 반복 영역 주위의 회색 탭을 클릭하여 오브젝트를 선택합니다.
  2. 속성 관리자(윈도우 > 속성)에서 [선택] 텍스트 필드 옆에 있는 동적 아이콘을 클릭합니다.
  3. [XPath 표현식 작성기]에서 필요한 사항을 변경한 다음 [확인]을 클릭합니다.

동적 페이지에 XSLT 부분 삽입

XSLT 부분을 만든 후에는 XSL 변환 서버 비헤이비어를 사용하여 XSLT 부분을 동적 웹 페이지에 삽입할 수 있습니다. 페이지에 서버 비헤이비어를 추가하고 브라우저에서 페이지를 보면 애플리케이션 서버는 선택한 XSLT 부분의 XML 데이터를 표시하는 변환 작업을 수행합니다. Dreamweaver에서는 ColdFusion, ASP 또는 PHP 페이지에 대해 XSL 변환을 지원합니다.

참고:

동적 페이지에 전체 XSLT 페이지의 내용을 삽입할 경우 절차가 동일합니다. XSL 변환 서버 비헤이비어를 사용하여 전체 XSLT 페이지를 삽입하기 전에 동적 페이지에서 모든 HTML 코드를 삭제하십시오.

  1. 기존의 ColdFusion, ASP, 또는 PHP 페이지를 엽니다.
  2. 디자인 뷰에서 XSLT 부분을 삽입하려는 위치에 삽입 포인터를 놓습니다.

    참고:

    XSLT 부분을 삽입할 경우 삽입 포인터가 정확한 위치에 있는지 확인할 수 있도록 페이지에 삽입 포인터를 놓은 다음 반드시 [코드 및 디자인 뷰 표시] 버튼을 클릭해야 합니다. 그렇지 않으면 원하는 곳에 삽입 포인터를 놓기 위해 코드 보기에서 다른 곳을 클릭해야 할 수 있습니다.

  3. 서버 비헤이비어 패널(윈도우 > 서버 비헤이비어)에서 플러스(+) 버튼을 클릭한 다음 [XSL 변환]을 선택합니다.
    서버 비헤이비어 패널
    서버 비헤이비어 패널

  4. [XSL 변환] 대화 상자에서 [검색] 버튼을 클릭하여 XSLT 부분이나 전체 XSLT 페이지를 찾습니다.

    Dreamweaver에서는 지정된 XSLT 부분에 연결된 XML 파일의 파일 경로나 URL을 그 다음 텍스트 필드에 자동으로 입력합니다. 이 내용을 변경하려면 [검색] 버튼을 클릭하여 다른 파일을 찾습니다.

  5. (선택 사항) 플러스(+) 버튼을 클릭하여 XSLT 매개 변수를 추가합니다.
  6. [확인]을 클릭하여 페이지에 XSLT 부분에 대한 참조를 삽입합니다. 이 부분은 편집할 수 없습니다. 해당 부분을 더블 클릭하고 소스 파일을 열어 편집할 수 있습니다.

    또한 includes/MM_XSLTransform/ 폴더가 런타임 라이브러리 파일이 포함된 사이트의 루트 폴더 아래에 작성됩니다. 애플리케이션 서버는 이 파일에 정의된 기능을 사용하여 변환을 수행합니다.

  7. 서버에 동적 페이지를 업로드([사이트] > [올리기])하고 [예]를 클릭하여 독립 파일을 포함합니다. 페이지를 올바르게 표시하려면 XSLT 부분이 포함된 파일, 데이터가 포함된 XML 파일 및 생성된 런타임 라이브러리 파일이 모두 서버에 있어야 합니다. 데이터 소스로 원격 XML 파일을 선택할 경우 해당 파일이 인터넷에 있어야 합니다.

동적 페이지에서 XSLT 부분 삭제

XSLT 부분을 삽입하는 데 사용된 XSL 변환 서버 비헤이비어를 삭제하면 페이지에서 XSLT 부분을 제거할 수 있습니다. 서버 비헤이비어를 삭제하면 XSLT 부분만 삭제되며 연관된 XML, XSLT 또는 런타임 라이브러리 파일은 삭제되지 않습니다.

  1. 서버 비헤이비어 패널(윈도우 > 서버 비헤이비어)에서 삭제하려는 XSL 변환 서버 비헤이비어를 선택합니다.
  2. 마이너스(-) 버튼을 클릭합니다.

    참고:

    항상 이런 방법으로 서버 비헤이비어를 제거해야 합니다. 생성된 코드를 수동으로 삭제하면 서버 비헤이비어는 [서버 비헤이비어] 패널에서 사라질 수 있지만 결국 부분적으로만 제거되는 것입니다.

XSL 변환 서버 비헤이비어 편집

동적 웹 페이지에 XSLT 부분을 추가하면 언제든지 XSL 변환 서버 비헤이비어를 편집할 수 있습니다.

  1. 서버 비헤이비어 패널(윈도우 > 서버 비헤이비어)에서 편집하려는 XSL 변환 서버 비헤이비어를 더블 클릭합니다.
  2. 필요한 사항을 변경한 다음 [확인]을 클릭합니다.

XML 데이터에서 사용자가 특정 단어나 구를 클릭할 때 지정된 URL로 링크되는 동적 링크를 XSLT 페이지에 만들 수 있습니다. 자세한 지침은 Dreamweaver 수정 문서(www.adobe.com/go/dw_documentation_kr)를 참조하십시오.

XSLT 부분에 스타일 적용

전체 XSLT 페이지(즉, <body><head> 태그가 있는 XSLT 페이지)를 만들 경우 페이지에 XML 데이터를 표시한 다음 속성 관리자나 [CSS 스타일] 패널을 사용하여 다른 내용 부분과 같이 데이터의 서식을 지정합니다. 그러나 동적 페이지에 삽입할 XSLT 부분을 만들 경우(예: ASP, PHP 또는 Cold Fusion 페이지에 삽입할 부분) 부분이나 동적 페이지의 스타일 렌더링은 더 복잡합니다. 동적 페이지와 별도로 XSLT 부분을 작업하더라도 해당 부분이 동적 페이지 내에서 사용하기 위한 것이고 해당 XSLT 부분의 출력이 결과적으로 동적 페이지의 <body> 태그 내에 상주함을 기억해야 합니다. 이 워크플로에서 스타일 정의 또는 외부 스타일 시트에 대한 링크와 같은 <head> 요소를 XSLT 부분에 포함시키면 안 됩니다. 포함시킬 경우 애플리케이션 서버가 이러한 요소를 동적 페이지의 <body>에 넣어 잘못된 마크업이 생성됩니다.

예를 들어 동적 페이지에 삽입하기 위한 XSLT 부분을 만들어 동적 페이지와 동일한 외부 스타일 시트를 사용하여 해당 부분의 서식을 지정할 수 있습니다. 동일한 스타일 시트를 부분에 연결하면 결과 HTML 페이지에 스타일 시트에 대한 중복 링크가 포함됩니다(하나는 동적 페이지의 <head> 섹션에 있고, 다른 하나는 XSLT 부분의 내용이 표시되는 페이지의 <body> 섹션에 있음). 이 방법 대신 디자인 타임 스타일 시트를 사용하여 외부 스타일 시트를 참조해야 합니다.

XSLT 부분 내용에 서식을 지정할 경우 다음 워크플로를 사용합니다.

  • 먼저, 외부 스타일 시트를 동적 페이지에 첨부합니다. 이 절차는 모든 웹 페이지의 내용에 스타일을 적용하는 가장 좋은 방법입니다.

  • 그런 다음 동일한 외부 스타일 시트를 디자인 타임 스타일 시트와 같이 XSLT 부분에 첨부합니다. 이름이 의미하듯이 디자인 타임 스타일 시트는 Dreamweaver 디자인 뷰에서만 사용할 수 있습니다.

    이전 두 단계를 완료했으면 동적 페이지에 첨부한 동일한 스타일 시트를 사용하여 XSLT 부분에 새 스타일을 만들 수 있습니다. 스타일 시트에 대한 참조는 Dreamweaver에서 사용할 경우에만 유효하므로 HTML 출력이 보다 깔끔하게 정리되고, 부분은 디자인 뷰에 적합한 스타일을 표시합니다. 또한 디자인 뷰에서 동적 페이지를 보거나 브라우저에서 동적 페이지를 미리 볼 때 모든 스타일이 동적 페이지와 부분 모두에 적용됩니다.

참고:

브라우저에서 XSLT 부분을 미리 볼 경우 스타일은 표시되지 않습니다. 동적 페이지의 컨텍스트 내 XSLT 부분을 보려면 동적 페이지를 브라우저에서 미리 봐야 합니다.

XSL 변환에서 매개 변수 사용

웹 페이지에 XSL 변환 서버 비헤이비어를 추가할 때 XSL 변환에 대한 매개 변수를 정의할 수 있습니다. 매개 변수는 XML 데이터가 처리되고 표시되는 방식을 제어합니다. 예를 들어 뉴스 피드에서 특정 기사를 찾고 나열하기 위해 매개 변수를 사용할 수 있습니다. 브라우저에서 페이지가 로드되면 매개 변수로 지정한 기사만 표시됩니다.

XSL 변환에 XSLT 매개 변수 추가

  1. [XSL 변환] 대화 상자를 엽니다. 서버 비헤이비어 패널(윈도우 > 서버 비헤이비어)에서 XSL 변환 서버 비헤이비어를 더블 클릭하거나 새로운 XSL 변환 서버 비헤이비어를 추가하여 이 대화 상자를 열 수 있습니다.
  2. [XSL 변환] 대화 상자에서 XSLT 매개 변수 옆에 있는 플러스(+) 버튼을 클릭합니다.
    XSL 변환 대화 상자
    XSL 변환 대화 상자

  3. [매개 변수 추가] 대화 상자에서 [이름] 상자에 매개 변수 이름을 입력합니다. 이름은 영숫자만 입력할 수 있습니다. 공백은 입력할 수 없습니다.
  4. 다음 중 하나를 수행합니다.
    • 정적 값을 사용하려면 [값] 상자에 원하는 값을 입력합니다.

    • 동적 값을 사용하려면 [값] 상자 옆에 있는 동적 아이콘을 클릭하고 [동적 데이터] 대화 상자와 관련된 작업을 완료한 다음 [확인]을 클릭합니다. 자세한 내용을 보려면 [동적 데이터] 대화 상자의 [도움말] 버튼을 클릭하십시오.

  5. [기본값] 상자에 페이지에서 런타임 값을 수신하지 못할 때 매개 변수에서 사용할 값을 입력하고 [확인]을 클릭합니다.

XSLT 매개 변수 편집

  1. [XSL 변환] 대화 상자를 엽니다. 서버 비헤이비어 패널(윈도우 > 서버 비헤이비어)에서 XSL 변환 서버 비헤이비어를 더블 클릭하거나 새로운 XSL 변환 서버 비헤이비어를 추가하여 이 대화 상자를 열 수 있습니다.
  2. XSLT 매개 변수 목록에서 매개 변수를 선택합니다.
  3. [편집] 버튼을 클릭합니다.
  4. 필요한 사항을 변경한 다음 [확인]을 클릭합니다.

XSLT 매개 변수 삭제

  1. [XSL 변환] 대화 상자를 엽니다. 서버 비헤이비어 패널(윈도우 > 서버 비헤이비어)에서 XSL 변환 서버 비헤이비어를 더블 클릭하거나 새로운 XSL 변환 서버 비헤이비어를 추가하여 이 대화 상자를 열 수 있습니다.
  2. XSLT 매개 변수 목록에서 매개 변수를 선택합니다.
  3. 마이너스(-) 버튼을 클릭합니다.

조건부 XSLT 영역 만들기 및 편집

XSLT 페이지에 간단한 조건부 영역이나 여러 조건부 영역을 만들 수 있습니다. 디자인 뷰에서 요소를 선택하고 조건부 영역을 선택 내용에 적용하거나, 문서에 삽입 포인터를 놓는 곳마다 조건부 영역을 삽입할 수 있습니다.

예를 들어 항목을 사용할 수 없는 경우에 항목 가격 옆에 “Unavailable”이라는 말을 표시하려면 페이지에 “Unavailable”이라고 입력한 다음 이를 선택하여 선택한 텍스트에 조건부 영역을 적용할 수 있습니다. Dreamweaver에서는 선택한 내용을 <xsl:if> 태그로 둘러싸고 데이터가 조건부 표현식의 조건과 일치하는 경우 페이지에 "Unavailable"이라는 단어를 표시합니다.

조건부 XSLT 영역 적용

간단한 조건부 표현식을 작성하여 XSLT 페이지에 삽입할 수 있습니다. [조건부 영역] 대화 상자를 열기 전에 선택한 내용이 있으면 해당 내용이 <xsl:if> 블록으로 래핑됩니다. 내용이 선택되어 있지 않으면 페이지의 삽입 포인터가 있는 위치에 <xsl:if> 블록이 추가됩니다. 이 대화 상자를 사용하여 시작한 다음 코드 보기에서 표현식을 사용자 정의하는 것이 좋습니다.

<xsl:if> 요소는 다른 언어의 if 문과 유사합니다. 이 요소는 조건을 테스트하고 결과에 따라 일련의 조치를 수행하는 방법을 제공합니다. <xsl:if> 요소를 사용하여 표현식이 단일 true 또는 false 값인지 테스트할 수 있습니다.

  1. [삽입] > [XSLT 오브젝트] > [조건부 영역]을 선택하거나 [삽입] 패널의 [XLST] 범주에서 [조건부 영역] 아이콘을 클릭합니다.
  2. [조건부 영역] 대화 상자에서 영역에 사용할 조건부 표현식을 입력합니다.

    다음 예제에서는 컨텍스트 노드의 @available 속성 값이 true인지 확인하기 위해 테스트합니다.

    조건부 영역 대화 상자
    조건부 영역 대화 상자

  3. [확인]을 클릭합니다.

    다음 코드가 XSLT 페이지에 삽입됩니다.

    <xsl:if test="@available=&apos;true&apos;"> 
        Content goes here 
    </xsl:if>

    참고:

    true와 같은 문자열 값은 따옴표로 묶어야 합니다. Dreamweaver에서는 따옴표(&apos;)를 인코딩하여 유효한 XHTML로 입력되도록 합니다.

    노드 값을 테스트할 뿐만 아니라 조건부 문에서 지원되는 XSLT 기능을 사용할 수도 있습니다. 조건은 XML 파일 내의 현재 노드에 대해 테스트됩니다. 다음 예제에서는 결과 집합의 마지막 노드에 대해 테스트합니다.

    결과 집합의 마지막 노드에 대한 테스트
    결과 집합의 마지막 노드에 대한 테스트

    조건부 표현식 작성에 대한 자세한 내용과 예제는 [참조] 패널([도움말] > [참조])의 <xsl:if> 섹션을 참조하십시오.

여러 조건부 XSLT 영역 적용

간단한 조건부 표현식을 작성하여 XSLT 페이지에 삽입할 수 있습니다. [조건부 영역] 대화 상자를 열기 전에 선택한 내용이 있으면 해당 내용이 <xsl:choose> 블록으로 래핑됩니다. 내용을 선택하지 않으면 페이지의 삽입 포인터가 있는 위치에 <xsl:choose> 블록이 추가됩니다. 이 대화 상자를 사용하여 시작한 다음 코드 보기에서 표현식을 사용자 정의하는 것이 좋습니다.

<xsl:choose> 요소는 다른 언어의 case 문과 유사합니다. 이 요소는 조건을 테스트하고 결과에 따라 일련의 조치를 수행하는 방법을 제공합니다. <xsl:choose> 요소를 사용하여 다중 조건을 테스트할 수 있습니다.

  1. [삽입] > [XSLT 오브젝트] > [다중 조건부 영역]을 선택하거나 [삽입] 패널의 [XLST] 범주에서 [다중 조건부 영역] 아이콘을 클릭합니다.
  2. [다중 조건부 영역] 대화 상자에서 첫 번째 조건을 입력합니다.

    다음 예제에서는 컨텍스트 노드의 price 하위 요소가 5보다 작게 설정되었는지 테스트합니다.

    다중 조건부 영역 대화 상자
    다중 조건부 영역 대화 상자

  3. [확인]을 클릭합니다.

    예제에서 다음 코드가 XSLT 페이지에 삽입됩니다.

    <xsl:choose> 
        <xsl:when test="price&lt;5"> 
            Content goes here 
        </xsl:when> 
        <xsl:otherwise> 
            Content goes here 
        </xsl:otherwise> 
    </xsl:choose>
  4. 다른 조건을 삽입하려면 코드 보기에서 <xsl:when> 태그 쌍 사이 또는 <xsl:otherwise> 태그 앞에 삽입 포인터를 놓은 다음 조건부 영역([삽입] > [XSLT 오브젝트] > [조건부 영역])을 삽입합니다.

    조건을 지정하고 [확인]을 클릭하면 다른 <xsl:when> 태그가 <xsl:choose> 블록에 삽입됩니다.

    조건부 표현식 작성에 대한 자세한 내용과 예제는 [참조] 패널([도움말] > [참조])의 <xsl:choose> 섹션을 참조하십시오.

조건부 영역(If) 속성 설정

조건부 영역 설정 속성 관리자는 XSL 페이지의 조건부 영역에 사용되는 조건을 변경하는 데 사용됩니다. 조건부 영역은 조건을 테스트하고 결과에 따라 일련의 조치를 수행합니다.

  1. [테스트] 상자에 새 조건을 입력한 다음 Enter 키를 누릅니다.

조건부(When) 속성 설정

조건부 영역 설정 속성 관리자는 XSL 페이지의 다중 조건부 영역에 사용되는 조건을 변경하는 데 사용됩니다. 다중 조건부 영역은 조건을 테스트하고 결과에 따라 일련의 조치를 취합니다.

  1. [테스트] 상자에 새 조건을 입력한 다음 Enter 키를 누릅니다.

XSL 주석 삽입

XSL 주석 태그를 문서에 추가하거나 선택 내용을 XSL 주석 태그로 래핑할 수 있습니다.

문서에 XSL 주석 태그 추가

  1. 다음 중 하나를 수행합니다.
    • 디자인 뷰에서 [삽입] > [XSLT 오브젝트] > [XSL 주석]을 선택하고 주석 내용을 입력하거나 상자를 비워 놓고 [확인]을 클릭합니다.

    • 코드 보기에서 [삽입] > [XSLT 오브젝트] > [XSL 주석]을 선택합니다.

    참고:

    [삽입] 패널의 [XSLT] 범주에서 [XSL 주석] 아이콘을 클릭해도 됩니다.

XSL 주석 태그의 선택 내용 줄 바꿈

  1. 코드 보기로 전환합니다([보기] > [코드]).
  2. 주석을 입력할 코드를 선택합니다.
  3. 코딩 툴바에서 [주석 적용] 버튼을 클릭하고 [<xsl:comment></xsl:comment> 주석 적용]을 선택합니다.

XPath 표현식 작성기를 사용하여 XML 데이터의 표현식 추가

XPath(XML Path Language)는 XML 문서 일부분의 주소를 지정하기 위한 비XML 구문입니다. XPath는 마치 SQL 언어가 데이터베이스를 쿼리하는 데 사용되는 것처럼 XML 데이터에 대한 쿼리 언어로 주로 사용됩니다. XPath에 대한 자세한 내용은 W3C 웹 사이트(www.w3.org/TR/xpath)에서 XPath 언어 사양을 참조하십시오.

[XPath 표현식 작성기]는 데이터의 특정 노드를 식별하는 간단한 XPath 표현식을 작성하거나 반복 영역에 대해 간단한 XPath 표현식을 작성하는 데 사용할 수 있는 Dreamweaver 기능입니다. XML 스키마 트리에서 값을 드래그하지 않고 이 방법을 사용하면 표시되는 값의 서식을 지정할 수 있습니다. 현재 컨텍스트는 [XPath 표현식 작성기] 대화 상자를 열 때 XSL 파일에서의 삽입 포인터 위치를 기준으로 식별됩니다. 현재 컨텍스트는 XML 스키마 트리에 굵게 표시됩니다. 이 대화 상자에서 선택한 대로 현재 컨텍스트에 대한 정확한 XPath 문이 생성됩니다. 따라서 초보자든 고급 사용자든 정확한 XPath 표현식을 기록할 수 있도록 도와줍니다.

참고:

이 기능은 데이터의 특정 노드를 식별하는 간단한 XPath 표현식을 작성하거나 반복 영역에 대해 간단한 XPath 표현식을 작성할 수 있도록 설계되었습니다. 표현식을 직접 편집할 수는 없습니다. 복잡한 표현식을 만들어야 할 경우 [XPath 표현식 작성기] 대화 상자를 사용하여 시작한 다음 코드 보기나 속성 관리자에서 표현식을 사용자 정의합니다.

XPath 표현식을 작성하여 특정 노드 식별

  1. 페이지에서 XML 데이터 자리 표시자를 더블 클릭하여 [XPath 표현식 작성기]를 엽니다.
  2. [XPath 표현식 작성기(동적 텍스트)] 대화 상자의 XML 스키마 트리에서 노드를 선택합니다.

    [표현식] 상자에 노드를 식별하는 올바른 XPath 표현식이 작성됩니다.

    참고:

    XML 스키마 트리에서 다른 노드를 선택하면 이에 따라 표현식이 변경됩니다.

    다음 예제에서 item 노드의 price 하위 요소를 표시하려면 다음과 같이 합니다.

    XPath 표현식 작성기(동적 텍스트) 대화 상자
    XPath 표현식 작성기(동적 텍스트) 대화 상자

    이 선택 내용은 XSLT 페이지에 다음 코드를 삽입합니다.

    <xsl:value-of select="price"/>
  3. (선택 사항) [포맷] 팝업 메뉴에서 서식 지정 옵션을 선택합니다.

    선택 내용의 서식 지정은 노드 값이 숫자를 반환할 경우에 유용합니다. Dreamweaver에서는 미리 정의된 서식 지정 기능의 목록을 제공합니다. 사용할 수 있는 전체 서식 지정 기능과 예제 목록을 보려면 [참조] 패널을 참조하십시오.

    다음 예제에서는 price 하위 요소의 서식을 2자리 소수점의 통화로 지정합니다.

    price 하위 요소의 서식을 2자리 소수점의 통화로 지정합니다.
    price 하위 요소의 서식을 2자리 소수점의 통화로 지정합니다.

    이러한 옵션은 XSLT 페이지에 <xsl:value-of select="format-number(provider/store/items/item/price,'$#.00')"/> 코드를 삽입합니다.

    <xsl:value-of select="format-number(provider/store/items/item/price,'$#.00')"/>
  4. [확인]을 클릭합니다.
  5. XML 파일에 각 노드 값을 표시하려면 동적 텍스트가 포함된 요소(예: HTML 표 행 또는 단락)에 반복 영역을 적용합니다.

    값을 반환하도록 노드를 선택하는 정보와 예제는 [참조] 패널의 <xsl:value-of/> 섹션을 참조하십시오.

반복할 노드 선택

노드를 계속 반복 선택하여 결과를 필터링할 수도 있습니다. [XPath 표현식 작성기] 대화 상자에서 선택한 내용은 <xsl:for-each> 블록 내부에 래핑됩니다. 내용을 선택하지 않으면 커서의 삽입 포인터가 있는 위치에 <xsl:for-each> 블록이 입력됩니다.

  1. 페이지에서 XML 데이터 자리 표시자를 더블 클릭하여 [XPath 표현식 작성기]를 엽니다.
  2. [XPath 표현식 작성기(반복 영역)] 대화 상자에서 XML 스키마 트리에서 반복할 항목을 선택합니다.

    [표현식] 상자에 노드를 식별하는 올바른 XPath 표현식이 작성됩니다.

    참고:

    반복 항목은 XML 스키마 트리에서 플러스(+) 기호로 식별됩니다.

    다음 예제에서는 XML 파일 내의 각 item 노드를 반복합니다.

    XPath 표현식 작성기(반복 영역) 대화 상자
    XPath 표현식 작성기(반복 영역) 대화 상자

    [확인]을 클릭하면 다음 코드가 XSLT 페이지에 삽입됩니다.

    <xsl:for-each select="provider/store/items/item"> 
     Content goes here 
    </xsl:for-each>

    경우에 따라 반복 노드의 하위 집합으로 작업할 수 있습니다. 예를 들어 속성에 특정 값이 있는 항목만으로 작업할 수 있습니다. 이 경우 필터를 만들어야 합니다.

반복되는 데이터 필터링

필터를 사용하여 특정 속성 값을 가진 반복 노드를 식별합니다.

  1. XML 스키마 트리에서 반복할 노드를 선택합니다.
  2. [필터 구성] 확장 버튼을 클릭합니다.
  3. 플러스(+) 버튼을 클릭하여 빈 필터를 만듭니다.
  4. 다음 필터에 필터 조건을 입력합니다.

    필터링 방식

    필터링할 데이터가 들어 있는 반복 노드를 지정합니다. 팝업 메뉴는 XML 스키마 트리에서 선택한 노드에 대한 조상 노드 목록을 제공합니다.

    위치

    결과를 제한하는 데 사용되는 [필터링 방식] 노드의 속성 또는 하위 요소를 지정합니다. 팝업 메뉴에서 속성 또는 하위 요소를 선택하거나 이 필드에 소유한 XPath 표현식을 입력하여 스키마 트리 안에 더 깊이 존재하는 자식을 식별할 수 있습니다.

    연산자

    필터 표현식에 사용할 비교 연산자를 지정합니다.

    [필터링 방식] 노드에서 확인할 값을 지정합니다. 값을 입력합니다. 동적 매개 변수가 XSLT 페이지에 정의되어 있으면 팝업 메뉴에서 하나를 선택할 수 있습니다.

  5. 다른 필터를 지정하려면 플러스(+) 버튼을 한 번 더 클릭합니다.

    팝업 메뉴에 값을 입력하거나 값을 선택하면 [표현식] 상자의 XPath 표현식이 변경됩니다.

    다음 예제에서는 결과 집합을 @available 속성 값이 trueitem 노드로 제한합니다.

    결과 집합을 @available 속성의 값이 true인 item 노드로 제한합니다.
    결과 집합을 @available 속성의 값이 true인 item 노드로 제한합니다.

    [확인]을 클릭하면 XSLT 페이지에 <xsl:for-each select="provider/store/items/item[@available = &apos;true&apos;]"> Content goes here </xsl:for-each> 코드가 삽입됩니다.

    <xsl:for-each select="provider/store/items/item[@available = &apos;true&apos;]"> 
          Content goes here 
    </xsl:for-each>

    참고:

    true와 같은 문자열 값은 따옴표로 묶어야 합니다. Dreamweaver에서는 따옴표(&apos;)를 인코딩하여 유효한 XHTML로 입력되도록 합니다.

    부모 노드를 필터 조건의 일부로 지정할 수 있는 더 복잡한 필터를 만들 수 있습니다. 다음 예제에서는 store@id 속성이 1이고 itemprice 노드가 5보다 큰 item 노드로 결과 집합을 제한합니다.

    결과 집합을 store의 @id 속성이 1이고 item의 price 노드가 5보다 큰 item 노드로 제한합니다.
    결과 집합을 store의 @id 속성이 1이고 item의 price 노드가 5보다 큰 item 노드로 제한합니다.

    [확인]을 클릭하면 XSLT 페이지에 <xsl:for-each select="provider/store[@id = 1]/items/item[price &gt; 5]"> Content goes here </xsl:for-each> 코드가 삽입됩니다.

    반복 영역에 대한 자세한 내용과 예제는 [참조] 패널의 <xsl:for-each> 섹션을 참조하십시오.

    <xsl:for-each select="provider/store[@id = 1]/items/item[price &gt; 5]"> 
        Content goes here 
    </xsl:for-each>

이 작업에는 Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License의 라이센스가 부여되었습니다.  Twitter™ 및 Facebook 게시물은 Creative Commons 약관을 적용받지 않습니다.

법적 고지 사항   |   온라인 개인 정보 보호 정책