2011-06-03 48 views
0

喜通過xml得到標籤的值,如果我直接提供邏輯類似值(<xsl:value-of select="value"/>)意味着它被正確讀取如何使用XSLT

如果想,如果我嘗試與像

<xsl:variable name ="del50k" select ="(translate(substring-after(value,'&#13;'),'&#13;','~'))"/> 
    <xsl:value-of select="concat(substring(value, 1, 5), ',',substring(substring-before(value,'&#13;'),6), ',',$del50k)" /> 
一些邏輯來取

此XML

<swift> 
<message> 
    <block2 type="input"> 
    <messageType>102</messageType> 
    <receiverAddress>BKTRUS33XBRD</receiverAddress> 
    <messagePriority>N</messagePriority>  
</block2> 
<block3> 
<tag> 
    <name>32</name> 
    <value>praveen</value> 
</tag> 
<tag> 
    <name>42</name> 
    <value>pubby</value> 
</tag> 
</block3> 
<block4> 
<tag> 
    <name>32A</name> 
    <value>051008EUR1009.43</value> 
</tag> 
<tag> 
    <name>77</name> 
    <value>PUBBYPRAVZ</value> 
</tag> 
<tag> 
    <name>21</name> 
    <value>UK</value> 
</tag> 
<tag> 
    <name>21</name> 
    <value>USA</value> 
    </tag> 
    <tag> 
<name>50K</name> 
<value> 
0601/045788775099 
shanmu 
MENENDEZ Y PELAYOA CORUNA SPA 
</value> 
    </tag> 
    <tag> 
<name>50K</name> 
<value> 
0501/045788775099 
Praveen 
MENENDEZ Y PELAYOA CORUNA SPA 
</value> 
</tag> 
    <tag> 
     <name>76</name> 
     <value>shanmu</value> 
    </tag> 
</block4> 
</message> 
</swift> 

`

我已經申請日是XSLT邏輯這樣的波紋管

<xsl:template match="swift/message/block4/tag [name='21']">  

    <xsl:value-of select="value"/>,<xsl:text/> 

    <xsl:variable name="posi" select="position()"/> 
    <xsl:apply-templates select="../../block4/tag [name='50K'] [position()=$posi]"/>clrf 



</xsl:template> 

<xsl:template match="/swift/message/block4/tag [name='50K']"> 
    <xsl:variable name ="del50k" select ="(translate(substring-after(value,'&#13;'),'&#13;','~'))"/> 
    <xsl:value-of select="concat(substring(value, 1, 5), ',',substring(substring-before(value,'&#13;'),6), ',',$del50k)" /> 
</xsl:template> 

預期結果TAG 50K剩下的標籤正在

英國,0601 /,045788775099,山姆〜MENENDEZŸPELAYOA CORUNA SPA 美國,0501 /,045788775099,普利文〜 MENENDEZŸPELAYOA CORUNA SPA

+0

目前尚不清楚您的預期結果和實際結果。請使用更多標點符號。看來你在說''元素的預期結果''爲'50k'爲'0601 /,045788775099,shanmu〜MENENDEZ Y PELAYOA CORUNA SPA'。但我不知道下一行是什麼。實際結果? – LarsH 2011-06-03 11:58:09

+0

@larsh爲我得到結果爲空 – pubby 2011-06-03 12:02:43

+0

可能你的模板沒有得到應用。爲此,我們需要看到這個模板應該應用的上下文;還有一些輸出在出現「null」之前和之後的輸出。 – LarsH 2011-06-03 12:07:14

回答

0
<xsl:template match="swift/message/block4/tag [name='21']"> 

在提供的XML文檔沒有tag元件,其name孩子有字符串值'21'和那個(tag元素)是block4元素的子元素,它是swift元素的子元素的message元素的子元素。

因此,該模板根本沒有應用,它必須生成的結果不會生成。

+0

novachev的不便之處.....現在我編輯xml即使我有編輯也不執行記錄我有什麼預期輸出 – pubby 2011-06-03 19:59:39

+0

novachev我希望我的邏輯是正確的ryt ..? – pubby 2011-06-04 15:46:49