從XML需要平面文件自定義的順序,我想創建使用XSLT用的次序爲此輸出XML平面文件,如下所示:使用XSLT
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所示: `
<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。
謝謝你Shrein!這工作。但是如何將 移動到父項的底部,導致父項先運行。如果我需要在ClaimantStreetLocation模板後面添加新行,是否應該命名這些標記? –
user2382922
添加了對答案的解釋。希望能幫助到你。 – Shrein
這很有道理。感謝Shrein的解釋! – user2382922