xsltest.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<title>가계부</title>
</head>
<body>
<p style="margin: auto;">** XML 가계부 **</p>
<xsl:apply-templates select="가계부"/>
</body>
</html>
</xsl:template>
<xsl:template match="가계부">
<xsl:apply-templates select="상품목록"/>
</xsl:template>
<xsl:template match="상품목록">
<table width="500" border="1" style="text-align:center; margin: auto;">
<tr>
<td colspan="2">날짜 <xsl:value-of select="날짜"/></td>
<td colspan="2">수입가 <xsl:value-of select="수입"/></td>
</tr>
<tr style="background:yellow">
<th>번호</th><th>상품</th><th>가격</th><th>장소</th>
</tr>
<xsl:for-each select="상품">
<tr>
<td><xsl:number value="position()" format="1"/> </td> <!-- psition() : 순서를 반환 -->
<td><xsl:value-of select="물품명"/></td>
<td><xsl:value-of select="물품가격"/></td>
<td><xsl:value-of select="구입장소"/></td>
</tr>
</xsl:for-each>
<tr>
<td>건수</td>
<td colspan="3"><xsl:value-of select="count(.//상품)"/></td>
</tr>
<tr>
<td>지출</td>
<td colspan="3"><xsl:value-of select="sum(.//물품가격)"/></td>
</tr>
<tr>
<td>잔고</td>
<td colspan="3">
<xsl:choose>
<xsl:when test="./수입 - sum(.//물품가격) > 0">
<xsl:value-of select="./수입 - sum(.//물품가격)"/>
</xsl:when>
<xsl:otherwise>
<span style="color:red">
<xsl:value-of select="./수입 - sum(.//물품가격)"/>
</span>
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
</table>
</xsl:template>
</xsl:stylesheet>
===============================================================================================================
xmltest.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="account_book.xsl" ?>
<가계부>
<상품목록>
<날짜>2014년 4월 4일</날짜>
<수입>1</수입>
<상품>
<물품명>스타벅스 컵</물품명>
<물품가격>3000</물품가격>
<구입장소>종로3가점</구입장소>
</상품>
<상품>
<물품명>종이컵</물품명>
<물품가격>500</물품가격>
<구입장소>다이소</구입장소>
</상품>
<상품>
<물품명>물컵</물품명>
<물품가격>300</물품가격>
<구입장소>다이소2</구입장소>
</상품>
</상품목록>
</가계부>
==================
==================
실행은 xml로 실행
'XML' 카테고리의 다른 글
DTD 보다 더 상세하게 XML을 정의하고 싶을 때 사용하는 XSD (0) | 2014.04.07 |
---|---|
xsl 문법 예제 (0) | 2014.04.04 |
xml과 xsl을 이해하는 예제 (0) | 2014.04.04 |
xml xmlns : xml namespace (0) | 2014.04.04 |
DTD에서 속성(ATTLIST) 정의하기, xml dtd #FIXED 적용 (0) | 2014.04.04 |