dna.xml


<?xml version="1.0" encoding="euc-kr"?>

<?xml:stylesheet type="text/xsl" href="dna.xsl"?>

<SEQUENCE> 

<SEQ> 

<ID>인간DNA</ID> 

<DNA>ATCGATGCTAGCTAGCTAGCTGATCGATGCTAGC</DNA> 

</SEQ> 

<SEQ> 

<ID>원숭이DNA</ID> 

<DNA>AGCTAGCTAGCTGATCGATGCTAGC</DNA> 

</SEQ> 

<SEQ> 

<ID>고양이DNA</ID> 

<DNA>CAGTAGTCGATCGATGCTAGCTAGCTAGCTGATCGATGCTAGC</DNA> 

</SEQ> 

</SEQUENCE> 


위 내용을 가지고 아래와 같은 형식으로 출력하고 싶을 때,


인간DNA

ATCGA(1) TGCTA(2) GCTAG(3) CTAGC(4)

TGATC(5) GATGC(6) TAGC(7) 


원숭이DNA

AGCTA(1) GCTAG(2) CTGAT(3) CGATG(4)

CTAGC(5) 


고양이DNA

CAGTA(1) GTCGA(2) TCGAT(3) GCTAG(4)

CTAGC(5) TAGCT(6) GATCG(7) ATGCT(8)

AGC(9) 



XSL 파일을 어떻게 만들어야 할까...

정답은 다음과 같다. ^^


dna.xsl


<?xml version="1.0" encoding="euc-kr"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

<xsl:output method="html" version="4.0" encoding="euc-kr" indent="yes"/>


<xsl:template match="/">

<xsl:apply-templates/>

</xsl:template>


<xsl:template match="SEQUENCE">

<xsl:apply-templates/>

</xsl:template>


<xsl:template match="SEQ">

<xsl:apply-templates/><BR/><BR/>

</xsl:template>


<xsl:template match="ID">

<xsl:value-of select="."/><BR/>

</xsl:template>


<xsl:template match="DNA">

<xsl:param name="MyString"><xsl:value-of select="."/></xsl:param>

<xsl:param name="MyLoop">1</xsl:param>

<xsl:param name="MyPosition"><xsl:value-of select="position()"/></xsl:param>

<xsl:choose>

<xsl:when test="$MyLoop mod 4 = 0">

<xsl:value-of select="substring($MyString, 0, 6)"/>(<font color="red"><xsl:value-of select="$MyLoop"/></font>)<BR/>

</xsl:when>

<xsl:otherwise>

<xsl:value-of select="substring($MyString, 0, 6)"/>(<font color="red"><xsl:value-of select="$MyLoop"/></font>)

</xsl:otherwise>

</xsl:choose>

<xsl:if test="string-length($MyString) > 6">

<xsl:apply-templates select="../DNA[$MyPosition]">

<xsl:with-param name="MyString">

<xsl:value-of select="substring($MyString, 6)"/>

</xsl:with-param>

<xsl:with-param name="MyLoop">

<xsl:value-of select="$MyLoop + 1"/>

</xsl:with-param>

</xsl:apply-templates>

</xsl:if>

</xsl:template>


</xsl:stylesheet>


'Tech: > XML·XSL' 카테고리의 다른 글

XSLT - XPath 함수  (0) 2008.06.26
XML 기본개념: 추가  (0) 2008.06.26
XSL 기본문법(2)  (0) 2008.06.26
XMLHTTP 사용시 주의사항  (0) 2008.06.26
DOM(2)  (0) 2008.06.26


Posted by 떼르미
,


자바스크립트를 허용해주세요!
Please Enable JavaScript![ Enable JavaScript ]