2013-09-16 3 views
0

값 I 다음과 같은 XML 파일이 : 나는 CSV와 함께 정보 파일 그냥 CnyCd 및 CnyNa에 대한 속성 값으로 변환 하시겠습니까XSLT 변환은

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<DatDtl xmlns="http://ups.com/ttg/cache/country"> 
<CnyDtl> 
<Cny TslLguCd="001" CnyCd="00" Cny2Cd="DNA" Cny3Cd="000" CnyNa="Data Not Available" CnyOflNa="Data Not Available" RecEffSttDt="2010-12-31" RecEffEndDt="2099-12-31" RecUdtTs="2012-07-27 15:35:08.352773"/> 
<Cny TslLguCd="001" CnyCd="96" Cny2Cd="OTH" Cny3Cd="996" CnyNa="Other" CnyOflNa="Other" RecEffSttDt="2010-12-31" RecEffEndDt="2099-12-31" RecUdtTs="2012-07-27 15:35:14.291605"/> 
</CnyDtl> 
</DatDtl> 

합니다. 다음 두 값을 추출하기 위해 XSLT를 작성했습니다.

< 

?xml version="1.0" encoding="ISO-8859-1"?> 
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
     <xsl:template match="/"> 
     <xsl:for-each select="CnyDtl/Cny"> 
     <xsl:value-of select="@CnyNa"/> 
<xsl:value-of select="@CnyCd"/> 
     </xsl:for-each> 
     </xsl:template> 
    </xsl:stylesheet> 

항상 오류가 발생합니다. 무엇이 올바른 XSLT 변환이 될까요?

+0

안녕을 각각-당신이 할 수있는 전에, 당신은 "첫 번째"DatDtl "와 일치해야 CnyDtl/Cny ". Best regarsd, Peter – Peter

+0

어떤 오류가 발생했는지 알려주지 않고 오류가 발생한다고 말하지 마십시오. 그들은 당신에게 아무런 의미가 없을 수도 있지만, 아마도 당신의 질문에 대답하는 사람들에게는 의미가있을 것입니다. –

답변

0

먼저 스타일 시트에서 루트 요소 <DatDtl>을 잊어 버렸습니다. 또한 네임 스페이스를 스타일 시트에 선언하는 것을 잊지 마십시오.

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:mypref="http://ups.com/ttg/cache/country"> 
    <xsl:output method="text" /> 

    <xsl:variable name="FS"> <!-- Field seperator --> 
     <xsl:text>;</xsl:text> 
    </xsl:variable> 
    <xsl:variable name="LT"> <!-- Line terminator --> 
     <xsl:text>&#13;</xsl:text> 
    </xsl:variable> 

    <xsl:template match="/mypref:DatDtl"> 
     <xsl:for-each select="mypref:CnyDtl/mypref:Cny"> 
      <xsl:value-of select="@CnyNa"/> 
      <xsl:value-of select=" $FS" /> 
      <xsl:value-of select="@CnyCd"/> 
      <xsl:value-of select="$LT" /> 
     </xsl:for-each> 
    </xsl:template> 
</xsl:stylesheet> 

그것은 다음과 같은 출력 줄 것입니다 : 다음 XSLT 1.0 스타일 시트를 사용하는 경우

Data Not Available;00 
Other;96