2013-06-26 7 views
1

안녕하세요. 다음 XML 코드가 있습니다. 그런 다음 xml을 헤더 제목이있는 CSV 형식으로 변환해야합니다.xsl을 사용하여 xml을 csv로 변환하는 방법

<?xml version='1.0'?> 

    <portfolio> 

    <stock exchange="nasdaq"> 
    <name>zaffymat inc</name> 
    <symbol>ZFFX</symbol> 
    <price>92.250</price> 
    </stock> 

    <stock exchange="nyse"> 
    <name>zacx corp</name> 
    <symbol>ZCXM</symbol> 
    <price>28.875</price> 
    </stock> 

    <stock exchange="nasdaq"> 
    <name>zysmergy inc</name> 
    <symbol>ZYSZ</symbol> 
    <price>20.313</price> 
    </stock> 

    </portfolio> 

xsl을 통해 아래의 출력처럼 위의 XML을 csv로 변환 할 수 있습니까?

"Name";"Price" 
"zaffymat inc";"92.250" 
"zysmergy inc";"20.313" 

고맙습니다.

+0

시도한 내용은 무엇입니까? – Usman

답변

2

원하는 출력을 얻을이 XSLT을 시도해보십시오

<xsl:template match="portfolio"> 
    <xsl:text>"Name";"Price"</xsl:text> 
    <xsl:text>&#10;</xsl:text> 
    <xsl:for-each select="stock"> 
     <xsl:text>"</xsl:text> 
     <xsl:value-of select="name"/> 
     <xsl:text>";</xsl:text> 
     <xsl:text>"</xsl:text> 
     <xsl:value-of select="price"/> 
     <xsl:text>"</xsl:text> 
     <xsl:text>&#10;</xsl:text> 
    </xsl:for-each> 
    </xsl:template> 
+0

Thanxs Navin.Its work. 출력을 필터링하려면 을 추가하십시오. 또한
을 추가하여 새 줄을 만듭니다. =) – qisadapolka

0

이 내 마지막 스크립트입니다

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:template match="portfolio"> 

<xsl:text>"Name"</xsl:text> 
<xsl:text>&#10;</xsl:text> 
<xsl:text>;</xsl:text> 
<xsl:text>&#10;</xsl:text> 
<xsl:text>"Price"</xsl:text><br/>&#10; 

<xsl:for-each select="//stock[@exchange='nasdaq']"> 

<xsl:text>"</xsl:text> 
<xsl:value-of select="name"/> 
<xsl:text>"</xsl:text><xsl:text>&#10;</xsl:text> 

<xsl:text>;</xsl:text> 
<xsl:text>&#10;</xsl:text> 

<xsl:text>"</xsl:text> 
<xsl:value-of select="price"/> 
<xsl:text>"</xsl:text><br/>&#10; 

</xsl:for-each> 
</xsl:template> 

정보 및 CSV 출력에 새로운 라인을 만들기를 필터링하기 위해 잘 동작! =)

관련 문제