반응형
xsltproc 사용법
xsltproc 란?
xml 양식에서 원하는 정보를 추출하기 위해 사용하는 tool
xsltproc 설치
centos 7,8에는 default로 제공되고 있음.
[명령어]
Redhat : yum install -y xsltproc
Ubuntu : apt install xsltproc
[설치 확인]
xsltproc -V
xsltproc 사용법
예제 XML 파일 생성
"cdcatalog.xml" 이라는 xml 파일이 있는 경우를 예제로 사용해봄.
내용은 아래와 같음.
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
</cd>
<cd>
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<country>USA</country>
<company>RCA</company>
<price>9.90</price>
<year>1982</year>
</cd>
</catalog>
예제 XSL 파일 생성
xsltproc 을 사용하기 위해서는
xsltproc 문법을 작성한 파일이 필요함.
일반적으로 확장자를 xsl로 생성함
"cdcatalog.xsl" 파일 생성
일반적으로 확장자를 xsl로 생성함
"cdcatalog.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>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
예제로 원하는 정보를 표 형식으로 생성해봄
[<th>Title</th> <th>Artist</th>]
표 상단의 항목 설명을 Title, Aritst 로 설정
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
"cdcatalog.xml" 파일에서 title과 artist 항목을 추출함.
xsltproc 명령 실행
[명령어]
xsltproc {XSLT file} {Source XML}
예) xsltproc ps.xsl test.xml
[결과 확인]
xsltproc 결과 확인
상위 명령으로 나온 결과를 html 파일로 생성해서 결과 확인
test.html 파일 생성
<html><body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Title</th>
<th>Artist</th>
</tr>
<tr>
<td>Empire Burlesque</td>
<td>Bob Dylan</td>
</tr>
<tr>
<td>Hide your heart</td>
<td>Bonnie Tyler</td>
</tr>
<tr>
<td>Greatest Hits</td>
<td>Dolly Parton</td>
</tr>
</table>
</body></html>
[결과 확인]
xsltproc를 사용해서 추출한 항목을 정상적으로 확인 가능.
참고
반응형