0
我有以下xml行,我嘗試使用XSLT進行轉換,但遇到了問題。該生產線是XSLT和`foreach`
<app>
<lem>text</lem>
<rdg wit="V" type="add.">text1</rdg>
<rdg wit="S" type="add.">text2</rdg>
<rdg wit="SV" type="add.">text3</rdg>
</app>
我有幾個這樣的app elements
的,然後有可能在其中1個4 rdg
元素之間,所以我想寫一個foreach
語句中foreach
聲明,但它無法正常工作。
我想說:
<xsl:for-each select="//tei:app">
<li><xsl:value-of select="tei:lem"/><xsl:text>] </xsl:text>
<xsl for-each select="tei:rdg"> <!--I hoping this would loop through each <rdg> within a given <app> element -->
<xsl:value-of select="//tei:rdg"/>
<xsl:value-of select="//tei:rdg/@type"/>
<xsl:value-of select="//tei:rdg/@wit"/>
</xsl:for-each>
</li>
</xsl:for-each>
但現在這是行不通的。就目前而言 - 這樣做的循環數是正確的,但是對於rdg
的每個實例,我都會得到拳頭rdg
的價值。但是如果我刪除了三個value-of
元素中的雙斜槓,那麼我沒有得到任何值。
你能發現我做錯了什麼嗎?有時我會對斜線,雙斜線,xpath中沒有斜槓使用感到困惑 - 我可以在那裏搞定嗎?
感謝您的幫助。
繁榮 - 你做到了。這似乎很好地工作。 – Jeff
@Jeff沒問題。 – FailedDev
我的確希望你不只是使用和接受答案,還要明白你做錯了什麼,以及如何避免將來再發生同樣的錯誤。您需要了解xsl:for-each如何設置上下文以及相對路徑和絕對路徑表達式之間的區別。 –