我在下面的格式,我要重新格式化XML:XSLT/Xpath的:選擇前面的評論
<blocks>
<!-- === apples === -->
<block name="block1">
...
</block>
<!-- === bananas === -->
<block name="block2">
...
</block>
<!-- === oranges === -->
<block name="block3">
...
</block>
</blocks>
我的問題是我無法弄清楚如何選擇每塊標記上述評論。我有以下XSL:
<xsl:template match="//blocks">
<xsl:apply-templates select="block" />
</xsl:template>
<xsl:template match="block">
<xsl:apply-templates select="../comment()[following-sibling::block[@name = ./@name]]" />
<xsl:value-of select="./@name" />
</xsl:template>
<xsl:template match="comment()[following-sibling::block]">
<xsl:value-of select="."></xsl:value-of>
</xsl:template>
,我想對輸出結果是:
===蘋果===
塊1
===香蕉===
塊2
===橘子===
塊3
但我能得到最好的是:
個===蘋果===
===香蕉===
===橘子===
塊1
===蘋果===
===香蕉===
===橘子===
塊2
===蘋果===
===香蕉===
===橘子===
塊3
我一個如果這有什麼不同,請使用PHP。
謝謝,我更喜歡你的版本,這似乎更簡單。很棒。 –