いくつかのノードを含む大きな xml ファイルがslide
あり、以下は大きな xml の一部です。
<slide add_info="e" name="slide31.xml" nav_lvl_1="Contact" nav_lvl_2="Company" >
--------something----------
</slide>
<slide add_info="a" name="slide32.xml" nav_lvl_1="References" nav_lvl_2="Company">
-----something----
</slide>
<slide add_info="b" name="slide33.xml" nav_lvl_1="References" nav_lvl_2="Company" >
------something--------
</slide>
<slide add_info="c" name="slide34.xml" nav_lvl_1="References" nav_lvl_2="Company" >
--------something----------
</slide>
<slide add_info="d" name="slide34.xml" nav_lvl_1="Contact" nav_lvl_2="Company" >
--------something----------
</slide>
ここでは、slide
属性を持つノードのみをグループ化し、それらのノードのすべての属性References
を取得する必要があります。たとえば、予想される出力:Company
add_info
values
a b c
現在私はやっています:
<xsl:choose>
<xsl:when test="@nav_lvl_1='References'">
<xsl:if test="@nav_lvl_2='Company'">
<xsl:for-each select="//@add_info">
<xsl:value-of select="."/>
</xsl:for-each>
</xsl:if>
</xsl:when>
</xsl:choose>
しかし、これにより、ドキュメント全体all
の属性のテキスト値がadd_info
得られます。たとえば、次のようになります。
e a b c d
しかし、出力が必要なのはa b c
、上記のコードを変更してそれを達成するにはどうすればよいかxslt
..任意の提案..私はここで立ち往生しています:(