XSLT 변환 플레이그라운드
브라우저 처리XML 문서에 XSLT 1.0 스타일시트를 적용한 변환 결과를 브라우저에서 바로 보여 줍니다. 스타일시트 오류와 결과가 비는 경우를 알려 줍니다.
- 파일·이미지·문서 처리 도구는 브라우저 안에서 처리되더라도 원본에 개인정보나 민감 정보가 포함될 수 있습니다. 공유·제출 전 원본과 결과를 한 번 더 확인하세요.
XSLT는 XML을 다른 XML이나 HTML로 바꾸는 규칙 언어로, 오래된 업무 시스템이나 공공 데이터 변환에 아직 많이 쓰입니다. 스타일시트를 고칠 때마다 서버에서 돌려 보기 번거로운데, 이 플레이그라운드는 브라우저에 내장된 XSLT 1.0 엔진으로 바로 결과를 보여 줍니다.
<ul> <li>ToolBada</li> <li>Markdown</li> </ul>
XSLT 변환 플레이그라운드 사용 가이드
XSLT는 XML을 다른 XML이나 HTML로 바꾸는 규칙 언어로, 오래된 업무 시스템이나 공공 데이터 변환에 아직 많이 쓰입니다. 스타일시트를 고칠 때마다 서버에서 돌려 보기 번거로운데, 이 플레이그라운드는 브라우저에 내장된 XSLT 1.0 엔진으로 바로 결과를 보여 줍니다.
XML 문서와 XSLT 스타일시트를 넣고 실행하면 변환된 결과를 들여쓰기해 보여 줍니다. 스타일시트가 XML로 읽히지 않으면 그 위치를, 변환은 됐지만 결과 문서가 비면 'xsl:template의 match 규칙을 확인하세요' 안내를 보여 줍니다.
브라우저 엔진이라 XSLT 2.0·3.0 기능(xsl:for-each-group 등)은 쓸 수 없고, 외부 파일을 불러오는 기능도 기대대로 동작하지 않을 수 있습니다.
사용 방법
- 'XML 문서' 칸에 변환할 원본 XML을 붙여 넣습니다.
- 'XSLT 스타일시트' 칸에 <xsl:stylesheet version="1.0" …> 스타일시트를 넣습니다.
- '실행'을 누르고 변환 결과를 확인한 뒤 필요하면 '다운로드'합니다.
예시: 도구 목록을 HTML 목록으로
XML 문서: <catalog><tool id="1"><name>ToolBada</name></tool><tool id="2"><name>Markdown</name></tool></catalog> XSLT 스타일시트: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="/"><ul><xsl:for-each select="//tool"><li><xsl:value-of select="name"/></li></xsl:for-each></ul></xsl:template></xsl:stylesheet>
<ul> <li>ToolBada</li> <li>Markdown</li> </ul>
for-each의 select 식이 맞는지는 XPath 테스터로 먼저 확인하면 편합니다.
이럴 때 쓰면 좋아요
- 레거시 시스템의 XSLT를 고치기 전에 결과를 확인할 때
- 공공 데이터 XML을 HTML 표로 바꾸는 규칙을 만들 때
- XSLT를 배우며 템플릿 동작을 실험할 때
- XML 형식을 다른 XML 형식으로 바꾸는 매핑을 검증할 때
문제가 생겼을 때
xsl:template의 match가 문서의 어떤 노드와도 맞지 않거나, 결과에 루트 요소가 없을 때 납니다. match="/"로 시작해 결과 전체를 감싸는 요소 하나를 두세요.
원본에 xmlns가 있으면 스타일시트에도 같은 주소의 접두어(xmlns:a="…")를 선언하고 select="//a:item"처럼 써야 합니다.
활용 팁
- 결과가 HTML이면 <xsl:output method="html"/>을 넣어야 브라우저가 HTML 규칙으로 출력합니다.
- 변환이 복잡하면 템플릿을 하나씩 추가하며 결과를 확인하는 것이 오류를 찾기 쉽습니다.
자주 묻는 질문
아니요. 브라우저에 내장된 XSLT 1.0 엔진만 씁니다. 2.0 이상은 Saxon 같은 전용 엔진이 필요합니다.
document()나 xsl:include로 다른 파일을 읽는 기능은 동작하지 않거나 브라우저 보안 정책에 막힙니다. 필요한 내용은 원본 XML에 합쳐 넣으세요.
아니요. 변환은 브라우저에 내장된 XSLT 엔진으로 기기 안에서만 실행되고, 원본과 스타일시트는 어디에도 보내지 않습니다.