2016-03-31 10 views
0

下面是在xsl文件中xpath將被構建和使用的xml文件。如何在xsl中顯示Java的String類型數組?

<response> 
<RetrieveUserResponseDTO> 
<mob /> 
<idCustomer /> 
<requestId /> 
<idChannel /> 
<userType /> 
<idUser /> 
<idChannelUser>123</idChannelUser> 
<idChannelUser>234</idChannelUser> 
<idChannelUser>1245</idChannelUser> 

下面是Java String數組

l_resp.idChannelUser = new String[3]; 

下面是XSL代碼

<xsl:for-each select="faml/response/retrieveuserresponsedto/idchanneluser"> 
              <tr> 
               <td class="warning" width="75%"> 
                <xsl:value-of select="faml/response/retrieveuserresponsedto/idchanneluser"></xsl:value-of> 
               </td>  
              </tr> 
             </xsl:for-each> 
+0

你的XSLT是指'faml'元素,但這不會顯示在您的XML中。它是否正確?另外,我不認爲java數組在這裏是相關的,因爲XSLT將無法訪問它。在這種情況下,您是否簡單地使用java數組生成XML,然後由XSLT處理? –

回答

1

忽略有關Java陣列的位,並僅着眼於XSLT轉換XML有兩個問題兩個注意事項

  1. XML和XSLT是區分大小寫,因此retrieveuserresponsedto是不會在你的XML匹配RetrieveUserResponseDTO(和idchanneluser將不匹配idChannelUser
  2. 在側面你xsl:for-each語句,你將被定位在idChannelUser元素,讓你的XPath獲取值需要與此相關。

試試這個XSLT來代替:(您可能需要在XPath的開始添加faml元素,如果確實是元素存在於你的XML)

<xsl:for-each select="response/RetrieveUserResponseDTO/idChannelUser"> 
    <tr> 
     <td class="warning" width="75%"> 
     <xsl:value-of select="." /> 
     </td>  
    </tr> 
</xsl:for-each> 
+0

非常感謝Tim C.它的工作。是的,你曾經編輯過我的文章是正確的,只是爲了簡要介紹我發佈的文章。你的一個問題是什麼「。」表示選擇屬性

+0

一個完整的'.'代表當前節點,所以''表示顯示當前所在節點的值。在這種情況下,您位於'idChannelUser'節點上,因此它將輸出該值。 –

+0

再次感謝你 –

相關問題