<?xml version="1.0" encoding="euc-kr"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xsl:for-each select="*">
<!-- 첫번째 노드 검색 -->
<xsl:element name="{name()}">
<xsl:for-each select="*">
<!-- 첫번째의 모든것을 element로 담는다. -->
<xsl:element name="{name()}">
<xsl:choose>
<!-- 만약 노드라면... -->
<xsl:when test="node()">
<!-- 한 단계의 레벨로 더 들어간다. -->
<xsl:for-each select="*">
<xsl:element name="{name()}">
<!-- 두번째 레벨의 것을 노드로 만든다 -->
<xsl:choose>
<!-- 만약 노드라면 -->
<xsl:when test="node()">
<xsl:for-each select="*">
<!-- 자식 element로 만든다. -->
<xsl:element name="{name()}">
<xsl:value-of select="." />
</xsl:element>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="." />
</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:for-each>
</xsl:when>
<!-- 첫번째 노드만 존재한다면 -->
<xsl:otherwise>
<!-- 바로 내용을 뿌린다. -->
<xsl:value-of select="." />
</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
3단계 자식 레벨까지만 찾아내주는 xslt.
attribute를 찾아서 붙여주는 것 까진 아직 하지 않았다. (활용은 그때그때...)
outmethod 를 xml로 해주면 최상단의 xml 헤더가 추가되게 되며
indent를 활성화 시켜줘야만 들여쓰기 기능이 된 문서를 볼 수 있다.
특정 xml을 translate 시켜서 html로 보면 소스코드에서 변환된 xml 파일을 볼 수 있다.
'IT_Programming > XML' 카테고리의 다른 글
[XSLT] for-each를 사용한 loop법 (0) | 2007.09.30 |
---|---|
PHP의 DOM함수로 XML 만들기(3. 한글을 마음데로 써보자...) (0) | 2007.09.30 |
PHP의 DOM함수로 XML 만들기 (2.<?xml encoding="euc-kr"?>추가하기) (0) | 2007.09.30 |
PHP의 DOM함수로 XML 만들기 (1.기본문서만들기) (0) | 2007.09.30 |
[PHP] XML 문서파싱 - SAX 방식 , DOM 방식 (0) | 2007.09.30 |