[英]get attribute values by grouping nodes XSLT
我有一個帶有多個節點slide
的大型xml文件,以下是我的大型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>
在這里,我只需要對具有屬性References
和Company
的slide
節點進行分組,並獲取這些節點的所有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>
但這給了我整個文檔中add_info
屬性的all
文本值,例如:
e a b c d
但是我只需要abc
的輸出,如何更改上面的xslt
代碼以實現這一點。.任何建議..我被困在這里:(
您說的是“組”,但是分組特定於要創建具有相同屬性的多個組。
要僅選擇具有特定屬性的一組構造,只需在單個XPath地址中對它們進行尋址:
<xsl:for-each select="//slide[@nav_lvl_1='References' and @nav_lvl_2='Company'">
<xsl:value-of select="@add_info"/>
</xsl:for-each>
...盡管我會放棄//slide
並使用不帶//
的地址到達所有幻燈片的父級,然后將其作為子級進行尋址。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.