【发布时间】:2013-05-09 03:56:35
【问题描述】:
我想使用 xslt 从 xml 创建一个平面文件,此输出的顺序如下所示:
NM1*CC*1*史密斯*约翰****34*999999999~
N3*100大街~
从此 XML:
<Claim>
<Claimant
lastName="Smith"
firstName="John"
middleName=""
suffixName=""
indentificationCodeQualifier="34"
identificationCode="999999999">
<ClaimantStreetLocation
primary="100 Main Street"
secondary=""/>
</Claimant>
</Claim>
使用我创建的 XSLT,由于 XSLT 在遍历我假设的输入树时的工作原理,我得到了如下所示的相反顺序的输出:
N3*100 大街~
NM1*CC*1*史密斯*约翰****34*999999999~
我需要更改/添加什么来获得我正在寻找的 XSLT 的订单,我编写的 XSLT 如下所示: `
<xsl:template match="Claim/Claimant">
<xsl:apply-templates />
<xsl:text>NM1*CC*1*</xsl:text>
<xsl:value-of select="@lastName" />
<xsl:text>*</xsl:text>
<xsl:value-of select="@firstName" />
<xsl:text>*</xsl:text>
<xsl:value-of select="@middleName" />
<xsl:text>*</xsl:text>
<xsl:text>*</xsl:text>
<xsl:value-of select="@suffixName" />
<xsl:text>*</xsl:text>
<xsl:value-of select="@indentificationCodeQualifier" />
<xsl:text>*</xsl:text>
<xsl:value-of select="@identificationCode" />
<xsl:text>~</xsl:text>
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template match="Claim/Claimant/ClaimantStreetLocation">
<xsl:apply-templates />
<xsl:text>N3*</xsl:text>
<xsl:value-of select="@primary" />
<xsl:text>~</xsl:text>
<xsl:text>
</xsl:text>
</xsl:template>`
有没有办法在不将两个标签合二为一的情况下做到这一点?
如有任何反馈,我们将不胜感激。
我不知道这是否重要,但我正在使用 xalan-java 来处理代码中的 xslt。
【问题讨论】:
标签: java xslt flat-file xalan edi