회사에서 XML 데이터를 CSV 형태로 바꿀 일이 가끔 있는데
C++로 파싱해서 저장하는 프로그램을 만들었다.

프로젝트 생성하고 설정한 다음에 빌드하는게 귀찮더라는...
생각해보니 XSLT 써서 TEXT 파일로 컨버팅하면 될 것 같더라는...

C++ / C# / Perl 등 다양한 언어로 할 수 있겠지만
C++은 생산성이 떨어지고
C#은 어차피 컴파일해야 돌아가니 별 의미 없고
Perl은 다른 사람들이 문법을 모르니 -_-;;

.net 컴포넌트를 마음대로 가져다 쓸 수 있고
UI 작업도 가능하다고 하는 PowerShell 로 작업하기로 결정

아래와 같이 .net 객체 만들어서 transform 하면 끝 -ㅅ-

$script:xslt = new-object system.xml.xsl.xslcompiledtransform
  
## load xslt file
$xslt.load( $xslFilePath )
  
## transform
$xslt.Transform( $originalXmlFilePath, $outputFilePath )

출처 : http://huddledmasses.org/convert-xml-with-xslt-in-powershell/

앞으로는 각 변환 작업에 맞춰서 XSLT 만 작업하면 된다능 :)

몇 몇 거지같은 요소 빼고 파워쉘 만세!!
; 문서 보는게 C++, C# MSDN 보다 불편
; 실행할 때 security-policy 바꿔줘야하는 것
; include 같은 요소가 없는 것

728x90

+ Recent posts