BLOG main image
만만돌이's Blog
잡다한 공간?;;

'태크'에 해당되는 글 1건

  1. 2006/09/22 XML 문서 XSL 적용하여 꾸미기 - 2

XML 문서 XSL 적용하여 꾸미기 - 2

xml 2006/09/22 21:11 by 만만돌이

요즘 귀차니즘의 압박으로-_-;;
게임을 하고 싶은 엄청난 충동에 자주 느끼고 있지만 최대한 절제하면서 이 글을 작성중 이예요-_-;;
요즘 잠도 제대로 못자고 -_ㅜ 스트레스 풀 공간을 찾는중;;
인라인 스케이트를 이용해서 다이어트 모드에도 돌입해볼까 하는데 인라인을 전혀 몰라서;;
선뜻 살 수가 없네요ㅠ_ㅠ
잡설이 길었네요

XML 문서 XSL 적용하여 꾸미기 - 1 글에서 저 2가지 속성에 대해서
이야기 했어요

1. xsl:template 엘리먼트
2. xsl:apply-templates 엘리먼트

오늘은 그 나머지 속성에 대해서 이야기 할께요-0-)/

3.xsl:value-of 엘리먼트

<xsl:value-of select="XPATH(경로)"/>

xsl:value-of 엘리먼트는 select 속성에  xsl:apply-templates 에서와 마찬가지로 접근하고자 하는 노드 경로를 지정해요
xsl:value-of 엘리먼트는 xml 문서에서 select 속성에서 지정한 경로에 해당되는 엘리먼트의 값을 가져와요

ex)

<money>돈돈돈돈</money>
가 있다고 가정을 하고 여기에 xsl:value-of 엘리먼트를
<xsl:value-of select="money"/> 라고 지정을 하면 결과로
"돈돈돈돈" 이라고 값이 나타나요

(sings3.xsl)

<?xml version="1.0" encoding="euc-kr"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:template match="/">

<xsl:apply-templates select = "/mylife/gold"/>

</xsl:template>

<xsl:template match = "/mylife/gold">

  <xsl:value-of select="money"/> <br/>
</xsl:template>

</xsl:stylesheet>

(sings3.xml)


<?xml version="1.0" encoding="euc-kr" ?>  
<?xml:stylesheet type="text/xsl" href="sings3.xsl"?>

<mylife>
  <gold>
  <home> 멋진집 </home>
  <money> 10000   </money>
  <good> 강아지 </good>
  </gold>

  <gold>
  <home> 멋진집 </home>
  <money> 10000   </money>
  <good> 강아지 </good>
  </gold>
</mylife>

샘플


위의 샘플을 실행시켜보면
<xsl:template match="/"> 템플릿 규칙에 의해 루트 노드를 만나 xsl:apply-templates 를 실행합니다
<xsl:apply-templates select = "/mylife/gold"/> 엘리먼트는 루드 노트 내의 /mylife/gold 를 모두 찾아서
<xsl:template match = "/mylife/gold"> 템플릿 규칙을 적용합니다
템플릿 규칙 내부에는 <xsl:value-of select="money"/> 엘리먼트가 기술되어 xsl:value-of 엘리먼트를 만나
select 에 기술한 내용을 출력합니다

간단히 여기까지 xsl 에 대해서 이해 하셨나요?
여기까지를 이용해서 간단히 테이블로 xml 을 표현하는 것이 가능해요
테이블을 표현하는 것은 2가지 방법이 있어요

샘플 1


(ex1.xsl)

<?xml version="1.0" encoding="euc-kr"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:template match="/">
  <HTML>
  <HEAD>
    <TITLE>가난한 나의 삶-_-;;</TITLE>
  </HEAD>

  <BODY>  
    <BR/>
   <P align="center"><font color="#000000" size="6"> 나의 인생!! </font></P>
    <BR/>

<TABLE align="center" BORDER="1" cellpadding="5" cellspacing="2">

<THEAD>
     <TR>
      <TH bgcolor="navy"><font color="white">집</font></TH>
      <TH bgcolor="navy"><font color="white">돈</font></TH>
      <TH bgcolor="navy"><font color="white">여자</font></TH>
          </TR>
</THEAD>

<TBODY>
  <xsl:apply-templates select = "/mylife/gold"/>
</TBODY>
    </TABLE>
  </BODY>
  </HTML>
</xsl:template>

<xsl:template match = "/mylife/gold">
<TR>
  <TD><xsl:value-of select="home"/></TD>
  <TD><xsl:value-of select="money"/></TD>
  <TD><xsl:value-of select="girl"/></TD>
     </TR>
</xsl:template>

</xsl:stylesheet>

(ex1.xml)

<?xml version="1.0" encoding="euc-kr" ?>  
<?xml:stylesheet type="text/xsl" href="ex1.xsl"?>

<mylife>
  <gold>
  <home> 경매중? </home>
  <money> 통장에 10원?   </money>
  <girl> 없어요 ㅠ_ㅠ </girl> 
  </gold>

  <gold>
  <home> 팔렸음;; </home>
  <money> 바닥남-_-;   </money>
  <girl> 혼자도 빠듯;; </girl>
  </gold>
</mylife>

샘플 1은 <xsl:template match="/"> 은 match 속성에서 "/"를 지정하였기에 xml 문서의 최상위 루트 노드와 매치가 됩니다

xml 문서 상의 최상위 루트노드가 나타나면 xsl 프로세서가 그 부분을 템플릿 규칙내에 기술된 내용으로 변환합니다

<P align="center"><font color="#000000" size="6"> 나의 인생!! </font></P> 타이틀을 출력하고
테이블 태그를 작성합니다

<TABLE align="center" BORDER="1" cellpadding="5" cellspacing="2">

그다음에 thead 태그를 사용하여 테이블의 제목을 작성합니다

<THEAD>
     <TR>
      <TH bgcolor="navy"><font color="white">집</font></TH>
      <TH bgcolor="navy"><font color="white">돈</font></TH>
      <TH bgcolor="navy"><font color="white">여자</font></TH>
          </TR>
</THEAD>

xml 문서의 /mylife/gold 엘리먼트 자식 노드에 존재하는 내용을 가져와 테이블 내에 실제 데이터를
기록하기 위해서 xsl:apply-templates 엘리먼트를 사용합니다
xml 문서 내에서 mylife 엘리먼트의 자식 엘리먼트인 gold 엘러먼트를 만날 때마다 템플릿 규칙을 적용합니다

<TBODY>
  <xsl:apply-templates select = "/mylife/gold"/>
</TBODY>

테이블도 마무리!!

     </TABLE>

mylife 엘리먼트의 자식 엘리먼트인 gold 엘리먼트는 템플릿 규칙 내에서 정의하고 있는 내용으로
변환시켜  <xsl:apply-templates select = "/mylife/gold"/> 엘리먼트의 위치에 적용 시킵니다

<xsl:template match = "/mylife/gold">

마지막으로 작성된 내용은
템플릿 규칙에 의해 gold 엘리먼트가 나타나면 그 내용을 html 테이블의 하나의 행으로 변환시키는 것입니다
gold 엘리먼트의 자식 노드의 값을 가져오기 위해서 xsl:value-of  엘리먼트를 사용했어요

<TR>
  <TD><xsl:value-of select="home"/></TD>
  <TD><xsl:value-of select="money"/></TD>
  <TD><xsl:value-of select="girl"/></TD>
     </TR>
</xsl:template>

오늘은 여기까지!!
샘플 2랑 -_-;; 다른 xsl 속성은~!
내일 마저 작성할께요-_-;;
이제 생각보다 요만큼 적는데 시간이 엄청 걸려서요
안좋은 머리 겨우 굴리면서 작성중-_-;; 그래서 한번에 많이 못적어요
이해해주세요 ㅠ_ㅠ 내일 마저 작성할께요

이올린에 북마크하기(0) 이올린에 추천하기(0)
1 

카테고리

분류 전체보기 (30)
xml (8)
여행-_-!! (0)
주저리 주저리 (16)
몽상 공간 -_-; (1)
잡다한 공간?; (5)
너를 (0)

달력

«   2008/12   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31