2017-06-26 11 views
0

for-eachを使用して要素の値を呼び出すことができます。xsl:for-each、xsl:同じ要素の値?

入力

 <draft_mac_data> 
     <maintenance_function justification="center">Setup</maintenance_function> 
     <maintenance_level_c justification="center">10.00</maintenance_level_c> 
     <tools_test_equipment_codes> 
     <tools_test_equipment_reference_code>42</tools_test_equipment_reference_code> 
     <tools_test_equipment_reference_code>48</tools_test_equipment_reference_code> 
     <tools_test_equipment_reference_code>49</tools_test_equipment_reference_code> 
     <tools_test_equipment_reference_code>78</tools_test_equipment_reference_code> 
     <tools_test_equipment_reference_code>100</tools_test_equipment_reference_code> 
     <tools_test_equipment_reference_code>101</tools_test_equipment_reference_code> 
     <tools_test_equipment_reference_code>114</tools_test_equipment_reference_code> 
     <tools_test_equipment_reference_code>117</tools_test_equipment_reference_code> 
     <tools_test_equipment_reference_code>124</tools_test_equipment_reference_code> 
     <tools_test_equipment_reference_code>128</tools_test_equipment_reference_code> 
     <tools_test_equipment_reference_code>151</tools_test_equipment_reference_code> 
     <tools_test_equipment_reference_code>165</tools_test_equipment_reference_code> 
     <tools_test_equipment_reference_code>169</tools_test_equipment_reference_code> 
     <tools_test_equipment_reference_code>176</tools_test_equipment_reference_code> 
     <tools_test_equipment_reference_code>177</tools_test_equipment_reference_code> 
     <tools_test_equipment_reference_code>196</tools_test_equipment_reference_code> 
     <tools_test_equipment_reference_code>235</tools_test_equipment_reference_code> 
     </tools_test_equipment_codes> 
    </draft_mac_data> 

XSLTクリップ:インスタンスの

<qualify-2lvl> 
         <maintfunc><xsl:attribute name="func"><xsl:value-of select="doc:maintenance_function"/></xsl:attribute></maintfunc> 
         <xsl:for-each select="doc:maintenance_level_c"> 
          <maintclass-2lvl> 
           <c><xsl:value-of select="doc:maintenance_level_c"/></c> 
          </maintclass-2lvl> 
         </xsl:for-each> 
         <xsl:for-each select="doc:maintenance_level_f"> 
          <maintclass-2lvl> 
           <f><xsl:value-of select="doc:maintenance_level_f"/></f> 
          </maintclass-2lvl> 
         </xsl:for-each> 
         <xsl:for-each select="doc:maintenance_level_h"> 
          <maintclass-2lvl> 
           <h><xsl:value-of select="doc:maintenance_level_h"/></h> 
          </maintclass-2lvl> 
         </xsl:for-each> 
         <xsl:for-each select="doc:maintenance_level_d"> 
          <maintclass-2lvl> 
           <d><xsl:value-of select="doc:maintenance_level_d"/></d> 
          </maintclass-2lvl> 
         </xsl:for-each> 
         <xsl:for-each select="doc:tools_test_equipment_codes/doc:tools_test_equipment_reference_code"> 
          <trefs> 
          <tref><xsl:attribute name="refs"><xsl:value-of select="concat('teref', doc:tools_test_equipment_reference_code)"/></xsl:attribute></tref> 
          </trefs> 
         </xsl:for-each> 
       </qualify-2lvl> 

出力

 <qualify-2lvl> 
     <maintfunc func="Load/Unload"/> 
     <maintclass-2lvl> 
     <c/> 
     </maintclass-2lvl> 
     <trefs> 
     <tref refs="teref"/> 
     </trefs> 
     <trefs> 
     <tref refs="teref"/> 
     </trefs> 
     <trefs> 
     <tref refs="teref"/> 
     </trefs> 
     <trefs> 
     <tref refs="teref"/> 
     </trefs> 
     <trefs> 
     <tref refs="teref"/> 
     </trefs> 
    </qualify-2lvl> 

。私は、tools_test_equipment_reference_code要素ごとに言う を作成し、tools_test_equipment_reference_code要素の値を持つレフリー属性を移入しようとしています。

もっと正確な方法がありますか?私は何かを欠いている?

+0

それでは、代わりに希望の出力があり、現在の変換の問題は何ですか? – jsalonen

答えて

3

xsl:for-each select="doc:maintenance_level_c"の中で、コンテキストノードは、その値を出力するための要素です<xsl:value-of select="."/>

+1

Freakin 'Awesome!ありがとうございました。私は毎回何かを学ぶ。 – Steven