如何不显示xslt中的列标题

时间:2019-03-28 20:42:15

标签: xml xslt

我不想在xslt代码的输出中显示标题(列名)。

我有xslt代码,可将数据加载到具有列名称的csv文件中,但我不想显示列标题(元数据)。怎么做? 我是xslt的新手,并建议我精通一些文档。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    exclude-result-prefixes="xs ws" xmlns:ws="urn:com.workday/workersync"
    xmlns:xtt="urn:com.workday/xtt" xmlns:etv="urn:com.workday/etv"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    version="2.0">
 <xsl:output method="xml"></xsl:output>
    <xsl:template name="Header">
        <Line xmlns:xtt="urn:com.workday/xtt" xtt:separator="," xtt:quotes="csv">
            <PositionName>PositionName</PositionName>
        <EffectiveStartDate>EffectiveStartDate</EffectiveStartDate>
            <EffectiveEndDate>EffectiveEndDate</EffectiveEndDate>
        <EmployeeID>EmployeeID</EmployeeID> 


        </Line>

    </xsl:template>

    <xsl:template match="/">

        <File xmlns:xtt="urn:com.workday/xtt" xtt:quotes="csv" xtt:separator="&#xD;&#xA;">
            <Record xtt:separator="," xtt:quotes="csv">
                <xsl:call-template name="Header" />
            </Record>

            <xsl:for-each select="ws:Worker_Sync/ws:Worker/ws:Additional_Information">

                <xsl:variable name="Current_date">
                    <xsl:value-of select="current-date()"/>
                </xsl:variable>

                <Record xtt:separator="," xtt:quotes="csv">

                <PositionName>
                    <xsl:value-of select="ws:PositionName"/>
                </PositionName>

        <EffectiveStartDate xtt:dateFormat="MM/dd/yyyy">
                        <xsl:value-of select="$Current_date"/>
                    </EffectiveStartDate>

                <EffectiveEndDate xtt:dateFormat="MM/dd/yyyy">
                    <xsl:value-of select="ws:EffectiveEndDate"/>
                </EffectiveEndDate>



                <EmployeeID>
                    <xsl:value-of select="ws:EmployeeID"/>
                </EmployeeID>

                </Record>
            </xsl:for-each>
        </File>
    </xsl:template>
</xsl:stylesheet>

2 个答案:

答案 0 :(得分:1)

可能会删除整个部分:

<Record xtt:separator="," xtt:quotes="csv">
  <xsl:call-template name="Header" />
</Record>

会返回您想要的结果吗?无论如何,最好能看到输入和所需的输出。

答案 1 :(得分:1)

您说您的XSLT代码正在生成CSV文件,但事实并非如此。您的XSLT代码正在生成XML,在我看来,该XML似乎正在传递给某个将XML转换为CSV的后期处理程序。可能(如@ user631953所建议),删除名为“ Header”的模板的调用将具有预期的效果,但这仅是猜测;不知道我们真的不知道后处理程序的规范。