我有以下格式的 XML,我想重新格式化:
<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>
我正在尝试的输出是:
=== 苹果 ===
block1
=== 香蕉 ===
block2
=== 橙子 ===
block3
但我能得到的最好的是:
=== 苹果 ===
=== 香蕉 ===
=== 橙子 ===
block1
=== 苹果 ===
=== 香蕉 ===
=== 橙子 ===
block2
=== 苹果 == =
=== 香蕉 ===
=== 橙子 ===
block3
如果这有什么不同,我正在使用 PHP。