如何在xsl中显示Java的String类型数组?

时间:2016-03-31 10:20:17

标签: java arrays xml xslt xpath

下面是xml文件,xpath将在xsl文件中用于框架和使用。

<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>

1 个答案:

答案 0 :(得分:1)

忽略关于Java数组的一点,并只关注XSLT转换XML,有两个问题,两个注意事项

  1. XML和XSLT区分大小写,因此retrieveuserresponsedto与XML中的RetrieveUserResponseDTO不匹配(且idchanneluseridChannelUser不匹配)
  2. 在您的xsl:for-each语句旁边,您将被定位在idChannelUser元素上,因此您获取值的XPath需要相对于该值。
  3. 尝试使用此XSLT :(如果XML中确实存在该元素,则可能需要在XPath的开头添加faml元素)

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