2016-03-31 9 views
0

以下は、xpathがフレーム化され、xslファイルで使用されるxmlファイルです。String型のJavaの配列をxslに表示するにはどうすればいいですか?

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

など以下

は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には表示されません。これは正しいです?また、私は、XSLTがアクセスできないため、ここでJava配列が関連しているとは思わない。この場合、単にXSLTによって処理されるXMLを生成するためにJava配列を使用していますか? –

答えて

1

Java配列についてのビットを無視し、そしてXSLTにのみ着目するJava文字列配列の下

l_resp.idChannelUser = new String[3]; 

ありますXMLを変換すると、2つの問題が2つあります。

  1. XMLとXSLTはそうretrieveuserresponsedtoがあなたのXMLにRetrieveUserResponseDTOと一致するつもりはない(とidchanneluseridChannelUserと一致しません)、大文字と小文字が区別され
  2. 側であなたのxsl:for-each声明、あなたがidChannelUser要素上に配置されますので、あなたの値を取得するためのXPathは、それを基準にする必要があります。

代わりに、この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> 
+0

Tim Cさん、ありがとうございました。はい、私の投稿に編集したことは正しいです、ちょうど私がそのように投稿した投稿を簡潔にするためです。あなたに1つの質問があります。 "選択属性

+0

フルストップ '.'は現在のノードを表します。したがって、' はあなたが現在いるノードの値を表示することを意味します。この場合、あなたは 'idChannelUser'ノードに置かれているので、その値を出力します。 –

+0

もう一度ありがとう –

関連する問題