Xml 如何最小化xslt中的循环?

Xml 如何最小化xslt中的循环?,xml,xslt,Xml,Xslt,这是我的xml文件 <wd:reporting_data xmlns:wd="com.sri.job"> <wd:entry> <wd:referenceID>ACCTG</wd:referenceID> <wd:Job_Name>Accounting</wd:Job_Name> </wd:entry> <wd:entry> <wd:referenceI

这是我的xml文件

<wd:reporting_data xmlns:wd="com.sri.job">
  <wd:entry>
    <wd:referenceID>ACCTG</wd:referenceID>
    <wd:Job_Name>Accounting</wd:Job_Name>   
  </wd:entry>
  <wd:entry>
    <wd:referenceID>ACTMGT</wd:referenceID>
    <wd:Job_Name>Account Management</wd:Job_Name>  
  </wd:entry>
  <wd:entry>
    <wd:referenceID>ADMIN</wd:referenceID>
    <wd:Job_Name>Administration</wd:Job_Name>  
  </wd:entry>
</wd:reporting_data>

IMHO,产生(我认为)您想要的结果的最简单方法是调用
xsl:for each
两次,就像您所做的那样(或者通过使用两个具有不同模式的模板对
应用两次模板来做本质上相同的事情)


另一种方法是使用带有两个累积参数的递归命名模板。这更难设置,而且我看不出这一增加的复杂性会带来什么实际好处。

你能公布你想要得到的确切结果吗?--注意:请不要发布部分代码:您的XSLT使用了在别处定义的两个变量,因此对于任何想尝试重现您的问题的人来说都是无用的。@michael.hor257k我已经更新了我的代码。请现在检查。@Ramakrishnanovorthy请发布您试图获得的结果以及您正在使用的XSLT版本。@LingamurthyCS我已经更新了我的问题。请现在检查。我的意思是向我们展示转换给定示例的结果。
<xsl:variable name="JobFamily">JOB_FAMILY</xsl:variable>
<xsl:variable name="ReferrenceId">REFERENCE_ID</xsl:variable>
<xsl:variable name="Delimiter">|</xsl:variable>

<xsl:template match="/wd:reporting_data">
    <xsl:value-of select="$ReferrenceId"></xsl:value-of>
    <xsl:value-of select="$Delimiter"></xsl:value-of>
    <xsl:for-each select="wd:entry">
        <xsl:value-of select="wd:referenceID"></xsl:value-of>
        <xsl:value-of select="$Delimiter"></xsl:value-of>
    </xsl:for-each>
    <xsl:text>&#xa;</xsl:text>
    <xsl:value-of select="$JobFamily"></xsl:value-of>
    <xsl:value-of select="$Delimiter"></xsl:value-of>
    <xsl:for-each select="wd:entry">
        <xsl:value-of select="wd:Job_Name"></xsl:value-of>
        <xsl:value-of select="$Delimiter"></xsl:value-of>
    </xsl:for-each>
    <xsl:text>&#xa;</xsl:text>
</xsl:template>
REFERENCE_ID|ACCTG|ACTMGT|ADMIN|ALPTNR|AUDIT|BIZDEV|BRAND|CCMET|CCMGT|CCOPS|COMPLY|CONTNT|DBMGT|DEV|EMKTG|EXTRPT|FINOPS|FPA|FRAUD|FRDEV|GENMGT|GGRPHY|HOTEL|HRBP|HROPS|HTLPOP|INTCOM|INVREL|ITMGMT|
JOB_FAMILY|Accounting|Account Management|Administration|Alliance/Partnership|Audit|Business Development|Brand|Contact Center Metrics|Contact Center Management|Contact Center Operations|Compliance|