【问题标题】:XSL Creation for XML Parsing in .CSV File在 .CSV 文件中为 XML 解析创建 XSL
【发布时间】:2020-04-13 10:56:36
【问题描述】:

下面提到的使用 XSL 解析的 .CSV 文件中的 XML 文件的预期结果

示例 XML 文件

 <SCHOLARSHIP>
    <SCHOLARSHIP_DTL>
    <SCHOLARSHIP_NAME>Sports SCHOLARSHIP</SCHOLARSHIP_NAME>
    <ISSUE_DATE>21/12/2019</ISSUE_DATE>
    <AMOUNT>40000</AMOUNT>
    <STUDENTS>
    <STUDENT>
    <STUDENT_NAME>Alex</STUDENT_NAME>
    <SCHOOL_NAME>Monten</SCHOOL_NAME>
    </STUDENT>
    <STUDENT>
    <STUDENT_NAME>Lena</STUDENT_NAME>
    <SCHOOL_NAME>Convent</SCHOOL_NAME>
    </STUDENT>
    </STUDENTS>
    </SCHOLARSHIP_DTL>
 </SCHOLARSHIP>

使用 Xsl 解析和上述示例数据在 .csv 中的预期输出

 SCHOLARSHIP_NAME,ISSUE_DATE,AMOUNT,STUDENT_NAME,SCHOOL_NAME
 Sports SCHOLARSHIP,21/12/2019,40000,Alex,Monten
 Sports SCHOLARSHIP,21/12/2019,40000,Lena,Convent

下面提到 xsl 没有得到多个学生

    <xsl:template match="/">
     SCHOLARSHIP_NAME,ISSUE_DATE,AMOUNT,STUDENT_NAME,SCHOOL_NAME
    <xsl:for-each select="SCHOLARSHIP/SCHOLARSHIP_DTL"> 
    <xsl:value-of select="concat(SCHOLARSHIP_NAME,',',ISSUE_DATE,',',AMOUNT,',',STUDENTS/STUDENT/STUDENT_NAME,',',STUDENTS/STUDENT/SCHOOL_NAME,'&#xA;')"/>

【问题讨论】:

    标签: xml csv xslt xml-parsing xslt-1.0


    【解决方案1】:

    不处理带引号的字符串的简单方法是以下 XSLT-1.0 样式表:

    <xsl:template match="/">
        SCHOLARSHIP_NAME,ISSUE_DATE,AMOUNT,STUDENT_NAME,SCHOOL_NAME
        <xsl:for-each select="SCHOLARSHIP/SCHOLARSHIP_DTL"> 
            <xsl:for-each select="STUDENTS/STUDENT"> 
                <xsl:value-of select="concat(../../SCHOLARSHIP_NAME,',',../../ISSUE_DATE,',',../../AMOUNT,',',STUDENT_NAME,',',SCHOOL_NAME,'&#xA;')"/>
            </xsl:for-each>
        </xsl:for-each>
    </xsl:template>
    

    它的输出是:

    SCHOLARSHIP_NAME,ISSUE_DATE,AMOUNT,STUDENT_NAME,SCHOOL_NAME
    Sports SCHOLARSHIP,21/12/2019,40000,Alex,Monten
    Sports SCHOLARSHIP,21/12/2019,40000,Lena,Convent
    

    指定为顶级元素(xsl:stylesheet 的子元素)的首选输出方法应该是“文本”,如下所示:

    <xsl:output method="text" />
    

    【讨论】:

    • 太好了……谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-09
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多