Java
Java XML - xsl:copy-of
승모근뭉치
2023. 1. 19. 17:16
프로젝트 내 xsl_sample.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- XSL 문서 적용 xsl 프로세싱 지시자 xsl_test03.xsl 에서 적은 내용으로 xml을 변환시키겠다는 의미 -->
<!-- <?xml-stylesheet type="text/xsl" href="xsl_include01.xsl"?> -->
<!-- <?xml-stylesheet type="text/xsl" href="xsl_11.xsl"?> -->
<!-- <?xml-stylesheet type="text/xsl" href="xsl_ex01.xsl"?> -->
<!-- <?xml-stylesheet type="text/xsl" href="xsl_test03.xsl"?> -->
<!-- <?xml-stylesheet type="text/xsl" href="xsl_test04.xsl"?> -->
<?xml-stylesheet type="text/xsl" href="xsl_test05.xsl"?>
<도서리스트>
<책 분류="컴퓨터" id = "book1">
<제목>자바 기초</제목>
<저자>홍길동</저자>
<출판사>강동</출판사>
<가격>25000</가격>
</책>
<책 분류="컴퓨터" id = "book2">
<제목>XML 기초</제목>
<저자>강길동</저자>
<출판사>동아</출판사>
<가격>35000</가격>
</책>
<책 분류="어학" id = "book3">
<제목>영어 기초</제목>
<저자>고말똥</저자>
<출판사>영문출판</출판사>
<가격>15000</가격>
</책>
<책 분류="소설" id = "book4">
<제목>삼국지</제목>
<저자>이문열</저자>
<출판사>가남출판</출판사>
<가격>15000</가격>
</책>
<책 분류="역사" id = "book5">
<제목>조선왕조실록</제목>
<저자>임준서</저자>
<출판사>한솔</출판사>
<가격>20000</가격>
</책>
<책 분류="컴퓨터" id = "book6">
<제목>C언어</제목>
<저자>김관우</저자>
<출판사>IT 출판</출판사>
<가격>25000</가격>
</책>
</도서리스트>
프로젝트 내 xsl_test05.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<!-- 우선 템플릿 생성해 적용
match값은 전체 xml문서 전체를 다음과 같이(여기선 HTML로) 변경하겠다는 의미 -->
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<booklist>
<xsl:apply-templates select="/도서리스트/책"/><!-- 도서리스트에책을 선택한다는건 고대로 카피를 해온다는것 -->
</booklist>
</xsl:template>
<!-- 책 엘리먼트에 대한 템플릿을 설정하겠다 -->
<xsl:template match="책">
<!-- 전부다 카피해와서 보자라는것 -->
<book>
<xsl:copy-of select="@분류"/>
<xsl:copy-of select="@id"/>
<xsl:copy-of select="제목"/>
<xsl:copy-of select="저자"/>
<xsl:copy-of select="출판사"/>
<xsl:copy-of select="가격"/>
</book>
</xsl:template><!-- xsl_sample.xml로 가서 href를 xsl_test05.xsl로 바꾼다 그리고 HTML 문서를 적용하는게 아니므로 oXygen XSLT Debugger창 열다 -->
</xsl:stylesheet>
xsl_sample.xml 파일을 선택한다.
Eclipse IDE Menu 중에
Window > Perspective > Open Perspective > Other... 를 클릭한다.
창이 팝업되면 리스트 중에
Oxygen XSLT Debugger 를 클릭하고 Open 을 누른다.
==================================================
xsl_sample.xml 화면 하단 탭에 보면
XSLT Debugger 창이 나온다.
==================================================
XML 선택란에서
xsl_sample.xml 을 선택하고
XSL 선택란에는
xsl_test05.xsl 이 선택되어져 있다.
==================================================
아랫줄에는 Saxon6.5.5 이 선택되어 있는데 이것은 XSLT 프로세서이다. 그 옆으로 보면 화살표로 표시된 아이콘들이 보이는데 그 중에 Run 을 누른다. 그럼 옆에 Debug execution finished 라고 나오고, Eclipse IDE 제일 하단 바에도
Debug execution finished ( 0.1s ) 라고 나온다.
==================================================
오른쪽 창에보면 Output 이라 쓰인 탭에
다음과 같이 변환된 결과가 출력된다.
<?xml version="1.0" encoding="UTF-8"?>
<booklist>
<book 분류="컴퓨터" id="book1">
<제목>자바 기초</제목>
<저자>홍길동</저자>
<출판사>강동</출판사>
<가격>25000</가격>
</book>
<book 분류="컴퓨터" id="book2">
<제목>XML 기초</제목>
<저자>강길동</저자>
<출판사>동아</출판사>
<가격>35000</가격>
</book>
<book 분류="어학" id="book3">
<제목>영어 기초</제목>
<저자>고말똥</저자>
<출판사>영문출판</출판사>
<가격>15000</가격>
</book>
<book 분류="소설" id="book4">
<제목>삼국지</제목>
<저자>이문열</저자>
<출판사>가남출판</출판사>
<가격>15000</가격>
</book>
<book 분류="역사" id="book5">
<제목>조선왕조실록</제목>
<저자>임준서</저자>
<출판사>한솔</출판사>
<가격>20000</가격>
</book>
<book 분류="컴퓨터" id="book6">
<제목>C언어</제목>
<저자>김관우</저자>
<출판사>IT 출판</출판사>
<가격>25000</가격>
</book>
</booklist>