首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导出XSLT - XSLT元素不能包含XSLT元素

导出XSLT - XSLT元素不能包含XSLT元素
EN

Stack Overflow用户
提问于 2020-07-14 09:00:09
回答 1查看 101关注 0票数 0

我使用一组XML和XSLT编码从数据库中提取特定数据。XSLT的格式可能不正确,但我不确定如何更新XSLT代码。当我尝试在与数据库交互的应用程序中保存代码时,我在主题行"Export XSLT - XSLT element may not code element“中得到错误消息。

我试图完成的是几件事: a)格式化第4列中的日期应格式为"yyyymmdd“,并与第3列中的值连接;b)第7列中的数据应至少为6位,并且有多个值的前导零已从输出中删除;还有一个choose语句,其中如果值2可用,则使用值2,如果不可用,则使用值1;c)将第一列中的支付日期(数据)作为前缀添加到第17列的数据中,并在和之间使用空格。

任何见解都将不胜感激。下面的代码,我已经对标题行中的列进行了编号。

沙恩

{

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<GLPayrollExportConfiguration>
  <definitions>
    <FileType Value="CSV"/>
    <FileName>
      <Value Value="CRJ_GL_Summary_"/>
      <Value Value="paygroup_xref"/>
      <Value Value="_"/>
      <Value Value="payrun_payperiod_and_suffix"/>
      <Value Value="_"/>
      <Value Value="transaction_timestamp"/>
      <Value Value=".csv"/>
    </FileName>
    <Settings>
      <SplitMode Value="HOME_LOCATION_SPLIT"/>
      <ChartOfAccountXRefCode Value="GL"/>
      <RunOnPayRunCommit Value="True"/>
   </Settings>
    <Header>
1)    <Text Value="Posting Date,"/>
2)    <Text Value="Document Type,"/>
3)    <Text Value=" ,"/>
4)    <Text Value="Account Type,"/>
5)    <Text Value="Account No,"/>
6)    <Text Value="Fund No,"/>
7)    <Text Value="Dimension Speedkey Code,"/>
8)    <Text Value="Dimension 1,"/>
9)    <Text Value="Dimension 2,"/>
10)   <Text Value="Dimension 3,"/>
11)   <Text Value="Dimension 4,"/>
12)   <Text Value="Dimension 5,"/>
13)   <Text Value="Dimension 6,"/>
14)   <Text Value="Dimension 7,"/>
15)   <Text Value="Dimension 8,"/>
16)   <Text Value="External Document No,"/>
17)   <Text Value="Description,"/>
18)   <Text Value="Amount,"/>
    </Header>
    
    <Columns>
      <Column Name="PostingDate" DataType="datetime" Source="data" Value="payrun_pay_date" Sort="true"/>
      <Column Name="DocumentType" Value=" "/>
      <Column Name=" " DataType="string" Value="PAYROLL"/> 
      <Column Name="AccountType" DataType="datetime" Source="mapping"/>
      <Column Name="AccountNo" DataType="string" Source="data" Value="payrun_category_override_journal_number"/>
      <Column Name="FundNo" DataType="string" Value="UNREST"/>
      <Column Name="DimensionSpeedkeyCode" DataType="string" Source="mapping"/>
      <Column Name="Dimension1" DataType="string" Value=" "/>
      <Column Name="Dimension2" DataType="string" Value=" "/>
      <Column Name="Dimension3" DataType="string" Value=" "/>
      <Column Name="Dimension4" DataType="string" Value=" "/>
      <Column Name="Dimension5" DataType="string" Value=" "/>
      <Column Name="Dimension6" DataType="string" Value=" "/>
      <Column Name="Dimension7" DataType="string" Value=" "/>
      <Column Name="Dimension8" DataType="string" Value=" "/>
      <Column Name="ExternalDocumentNo" DataType="string" Value=" "/>
      <Column Name="Description" DataType="string" Source="mapping"/>
      <Column Name="Amount" DataType="number" Source="data" Value="payrun_amount" Function="sum" />
    
    </Columns>
  </definitions>

  <MappingDefinitions>
    <definition>

    <criteriaset> 
<!-- EXCLUDE MEMO DEDUCTIONS AND TAXABLE BENEFITS / JOURNAL NUMBER CODED AS exclude, Exclude, or EXCLUDE  -->   
        <criteria item="payrun_category_override_journal_number" op="ne">EXCLUDE</criteria>
        <criteria item="payrun_category_override_journal_number" op="ne">Exclude</criteria>
        <criteria item="payrun_category_override_journal_number" op="ne">exclude</criteria>
<!-- EXCLUDE RECORDS WITH with 0 VALUE -->
        <criteria item="payrun_amount" op="ne" opDataType="number">0</criteria>
    </criteriaset>

    <mapping>
        <mapto columnname="AccountType">
          <Value Value="payrun_pay_date"/>
        </mapto>
        <mapto columnname="DimensionSpeedkeyCode">
          <Value Value="override_segment_charged_dynamic_org_level_onsitedepartment"/>
          <Value Value="override_segment_dynamic_labor_metric_code_CostNumber"/>
        </mapto>        
        <mapto columnname="Description">
          <Value Value="payrun_category_override_description"/>
                  
        </mapto>        
    </mapping>
    
    </definition>   
  </MappingDefinitions>

  <ColumnFormats>
    <ColumnFormat Name="PostingDate" Format="MM.dd.yy"/>
    <ColumnFormat Name="DocumentType"/>
    <ColumnFormat Name=" "/>
    <ColumnFormat Name="AccountType" Format="yyyy-MM-dd"/>
    <ColumnFormat Name="AccountNo" WrapChar="&quot;"/>
    <ColumnFormat Name="FundNo"/>
    <ColumnFormat Name="DimensionSpeedkeyCode" WrapChar="&quot;"/>
    <ColumnFormat Name="Dimension1"/>
    <ColumnFormat Name="Dimension2"/>
    <ColumnFormat Name="Dimension3"/>
    <ColumnFormat Name="Dimension4"/>
    <ColumnFormat Name="Dimension5"/>
    <ColumnFormat Name="Dimension6"/>
    <ColumnFormat Name="Dimension7"/>
    <ColumnFormat Name="Dimension8"/>
    <ColumnFormat Name="ExternalDocumentNo"/>
    <ColumnFormat Name="Description" WrapChar="&quot;"/>
    <ColumnFormat Name="Amount" Format="{0:##.00}"/>
  </ColumnFormats>
  
 </GLPayrollExportConfiguration>

}

XSLT代码{

代码语言:javascript
复制
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
                  xmlns:cs="urn:cs">

<xsl:template match="/">
<xsl:for-each select="Export/Record">
    <xsl:if test="Amount != 0">
    <!--need one of the below for each column-->
        <xsl:value-of select="'payrun_pay_date'"/>
        <xsl:value-of select="' '"/>
    
    <xsl:template match="DocumentType/">
        <xsl:variable name="aaa" select="PAYROLL"/>
        <xsl:variable name="bbb" select="payrun_pay_date"/>
            <xsl:value-of select="concat($aaa,$bbb)"/>
    </xsl:template>
        <xsl:value-of select="' '"/>
        <xsl:value-of select="payrun_category_override_journal_number"/>
        <xsl:value-of select="UNREST"/>
        
    <xsl:template match="SuspensionSpeedKeyCode"/>
        <xsl:choose>
            <xsl:when test="override_segment_dynamic_labor_metric_code_CostNumber=' '">
            <xsl:value-of select="override_segment_charged_dynamic_org_level_onsitedepartment"/>
            </xsl:when>
            <xsl:otherwise>
            <xsl:value-of select="override_segment_dynamic_labor_metric_code_CostNumber"/>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>
    
        <xsl:value-of select="' '"/>
        <xsl:value-of select="' '"/>
        <xsl:value-of select="' '"/>
        <xsl:value-of select="' '"/>
        <xsl:value-of select="' '"/>
        <xsl:value-of select="' '"/>
        <xsl:value-of select="' '"/>
        <xsl:value-of select="' '"/>
        <xsl:value-of select="' '"/>
        
    <xsl:template match="Description"/>
        <xsl:variable name="ccc" select="payrun_pay_date"/>
        <xsl:variable name="ddd" select="payrun_category_override_description"/>
            <xsl:value-of select="concat($ccc,$ddd)"/>
    </xsl:template>
    
        <xsl:value-of select="payrun_amount"/>
    </xsl:template>
</xsl:stylesheet>

}

EN

回答 1

Stack Overflow用户

发布于 2020-07-14 14:41:46

xsl:template元素不能包含xsl:template元素。

正如@michael.hor257k所说,有许多XSLT处理器(或编辑器)可以提供更有意义的错误消息。此外,如果您不能立即看到这段XSLT代码毫无意义,那么在进行更多编码之前,您确实应该花几个小时阅读该语言的相关知识。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62886534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档