다음을 통해 공유


document 함수

XSLT 스타일시트 내에서 입력 스트림이 제공한 초기 데이터 이외에 다른 XML 리소스를 검색할 수 있는 방법을 제공합니다.

node-set document(object, node-set?)

설명

document() 함수의 결과는 제공된 인수의 형식과 수에 따라 다양합니다.

  • 인수를 한 개만 제공할 경우 이 인수가 문자열이면 document()는 이 문자열을 URL로 취급하고 문서를 노드 집합으로 검색합니다. 코드에 대한 설명은 아래의 예제 1을 참조하십시오.

  • 인수를 한 개만 제공할 경우 이 인수가 노드 집합이면 이 노드 집합의 각 노드는 URL로 취급되고 이 함수는 참조된 모든 문서의 통합을 반환합니다. 코드에 대한 설명은 아래의 예제 2를 참조하십시오.

  • 인수가 두 개 있을 경우 첫 번째 인수는 문자열이거나 노드 집합일 수 있으며 두 번째 인수는 노드 집합이어야 합니다. 두 번째 인수를 제공할 경우 이 인수는 첫 번째 인수 내용의 상대 URL인 기본 URL을 나타내는 역할을 합니다. 코드에 대한 설명은 아래의 예제 3을 참조하십시오.

  • document() 함수에 빈 문자열을 전달할 경우 두 번째 인수가 제공되지 않거나 null이면 결과는 XSLT 문서의 소스 XML입니다. 후자의 경우 문서의 URL은 두 번째 요소에 포함된 노드의 기본 URL입니다.

ASP 페이지에서 절대 URL을 인수로 사용하는 document() 함수를 사용하여 XML 문서를 다운로드할 경우 변환을 초기화하기 전에 다음 JScript 코드 단편과 같이 XSLT 스타일시트를 보유하고 있는 DOM 개체에서 ServerHTTPRequest 속성을 true로 설정해야 합니다.

xsltDom.setProperty("ServerHTTPRequest", true);

그 이유는 MSXML이 URLMON.dll을 기본값으로 사용하여 파일 다운로드를 지원하기 때문입니다. 그러나 ASP에서는 URLMON을 지원하지 않습니다. 그러므로 WinHTTP.dll을 다운로드 대안으로 선택하도록 이 속성을 설정해야 합니다.

예제 1

이 예제에서 XSLT 스타일시트(document.xsl)는 다음 단계를 수행합니다.

  1. document() 함수를 사용하여 소스 XML 문서 document.xml에 참조된 두 XML 문서인 hrGroup.xmlmyGroup.xml을 다운로드합니다.

  2. 다운로드한 문서에서 <group> 요소를 추출합니다.

  3. 결과 XML 문서에 추출한 요소를 삽입합니다.

변환 결과는 document.xml에서 참조를 확인하기 위한 것입니다. 상대 경로를 사용하여 외부 XML 문서를 참조하는 경우 기본 URL은 XSLT 스타일시트의 URL입니다.

ASP 페이지(document.asp)의 스크립트에서 변환을 초기화할 경우 ServerHTTPRequest 속성은 true로 설정됩니다. 변환이 JScript(document.js)에서 시작되고 Windows Scripting Host 또는 HTML 페이지에서 실행될 경우에는 이 설정이 반드시 필요하지는 않습니다. 여기서는 Windows Script Host가 사용됩니다.

XML 파일(document.xml)

참조된 XML 파일 1(hrGroup.xml)

참조된 XML 파일 2(myGroup.xml)

XSLT 파일(document.xsl)

ASP 파일(document.asp)

JScript 파일(document.js)

실습

  1. 위의 코드 샘플을 복사하여 로컬 드라이브의 파일에 붙여넣습니다.

  2. 지정된 이름과 확장명으로 파일을 저장합니다.

  3. 로컬 컴퓨터에서 기본 웹 사이트 아래에 hr이라는 별칭을 사용하여 새 가상 디렉터리를 만듭니다. 원격 컴퓨터를 웹 서버로 사용하는 경우 document.xml 문서의 href 특성 값에서 localhost를 웹 서버의 호스트 이름으로 변경합니다. 기존 가상 디렉터리를 사용하는 경우 같은 href 특성 값에서 hr을 이 디렉터리의 별칭으로 변경합니다. 웹 서버의 가상 디렉터리로 만든 디렉터리로 hrGroup.xml 파일을 이동합니다.

  4. Internet Explorer 브라우저 창에서 다음 URL을 사용하여 ASP 페이지를 엽니다.

    https://localhost/hr/document.asp

  5. 다음 Windows Scripting Host 명령을 사용하여 JScript 파일을 실행합니다.

cscript document.js

출력

다음은 쉽게 구별할 수 있도록 들여쓰기를 추가한 프로세서 출력입니다.

예제 2

이 예제에서는 노드 집합을 document 함수의 인수로 사용한 결과를 보여 줍니다.

XML 파일(document1.xml)

XSLT 스타일시트(document1.xsl)

실습

  1. msdn.microsoft.com에서 msxsl.exe를 다운로드합니다.

  2. 명령 프롬프트에서 document1.xmldocument1.xsl을 저장한 디렉터리에서 다음 명령을 입력합니다.

msxsl document1.xml document1.xsl

출력

출력은 위의 예제 1에서 생성된 출력과 유사합니다.

예제 3

이 예제에서는 document 함수를 호출할 때 두 개의 인수를 사용한 결과를 보여 줍니다. 노드 집합이어야 하는 두 번째 인수는 첫 번째 인수의 기본 URL 역할을 합니다. 두 번째 인수가 없을 경우 첫 번째 인수의 기본 URL은 XSLT 파일의 기본 URL입니다.

XSLT 스타일시트(document2.xsl)

XML 파일 1(b.xml)

XML 파일 2(subDir/a.xml)

실습

  1. document2.xslb.xml을 작업 디렉터리에 저장합니다.

  2. 명령 프롬프트에서 작업 디렉터리에 다음 명령을 입력합니다.

msxsl.exe a.xml document2.xsl

출력

<?xml version="1.0" encoding="UTF-8"?>
<root>
<!-- One Argument >
<a> one </a>
<a> two </a>
<a> three </a>
<!-- Two Arguments >
<a> I </a>
<a> II </a>
<a> III </a>
</root>

참고 항목

참조

<xsl:copy-of> 요소